std/flag
Traits
trait CommonFlag {
// Returns name of flag.
fn Name(self): str
// Returns short name of flag.
fn Short(self): rune
// Returns description of flag.
fn What(self): str
// Resets data to default.
fn Reset(mut self)
}
Common behaviors of flags.
Structures
struct FlagSet
Flag parser for command-line arguments.
Methods:
static fn New(): &FlagSet
Returns new flagset.
fn FindFlag(mut self, name: str): CommonFlag
Returns flag by name, returns nil if not exist.
fn FindFlagShort(mut self, name: rune): CommonFlag
Returns flag by short name, returns nil if not exist.
fn Flags(mut self): []CommonFlag
Returns all flags.
fn Parse(mut self, args: []str)!: []str
Parse arguments and process flags. Returns non-flag content. Exceptional always is string and holds error message.
Syntax:
- Long names can be used with double dash (` -- `). Short names can be used with a single dash ( `-` ). When Boolean flags are used, they use the opposite of their default values. Floating-point values are the same as the `ParseFloat` function provided by the `std/conv` package. Decimal, octal, binary and hexadecimal formats are supported for signed and unsigned integer types. String types accept values directly.
Octal values are represented by starts with 0o or 0
prefix. Hexadecimal values are represented by starts with 0x
prefix. Binary values are represented by starts with 0b
prefix.
A space is required to give a value. When a single dash (-) is used, all following characters are considered short names and thus collective use is allowed. If the short name flags used need values, the values should follow respectively.
fn Reset(mut self)
Resets all flags to default value.
fn Add[T: i64 | u64 | f64 | bool | str](mut self, name: str, short: rune, default: T, what: str): &T
Adds new flag and returns allocated reference variable. Panics if name or short name is alreadys exist. Zero (0) short names will be ignored. Panics if used unsupported type.
Supported types are:
i64
u64
f64
str
bool
fn AddVar[T: i64 | u64 | f64 | bool | str](mut self, mut var: &T, name: str, short: rune, what: str)
Same with add method but do not allocates new reference, uses existing.