Provides derive(Options) for gumdrop crate
derive(Options)
derive(Options) generates an implementation of the trait Options,
creating an option for each field of the decorated struct.
See the gumdrop documentation for an example
of its usage.
options attribute
Behavior of derive(Options) can be controlled by adding #[options(...)]
attributes to one or more fields within a decorated struct.
Supported items are:
commandindicates that a field represents a subcommand. The field must be of typeOption<T>whereTis a type implementingOptions. Typically, this type is anenumcontaining subcommand option types.help_flagmarks an option as a help flag. The field must bebooltype. Options namedhelpwill automatically receive this option.no_help_flagprevents an option from being considered a help flag.countmarks a field as a counter value. The field will be incremented each time the option appears in the arguments, i.e.field += 1;freemarks a field as a positional argument field. Non-option arguments will be used to fill allfreefields, in declared sequence. If the finalfreefield is of typeVec<T>, it will contain all remaining free arguments.short = "?"sets the short option name to the given characterno_shortprevents a short option from being assigned to the fieldlong = "..."sets the long option name to the given stringno_longprevents a long option from being assigned to the fieldrequiredwill cause an error if the option is not presentnot_requiredwill cancel a type-levelrequiredflag (see below).help = "..."sets help text returned from theOptions::usagemethodmeta = "..."sets the meta variable displayed in usage for options which accept an argumentparse(...)uses a named function to parse a value from a string. Valid parsing function types are:parse(from_str = "...")forfn(&str) -> Tparse(try_from_str = "...")forfn(&str) -> Result<T, E> where E: Displayparse(from_str)usesstd::convert::From::fromparse(try_from_str)usesstd::str::FromStr::from_str
#[options(...)] may also be added at the type level. Only the flags
no_help_flag, no_long, no_short, and required
are supported at the type level.