Macro clap::simple_enum
source · macro_rules! simple_enum { ($e:ident => $($v:ident),+) => { ... }; }
Expand description
Convenience macro generated a simple enum with variants to be used as a type when parsing
arguments. This enum also provides a variants()
function which can be used to retrieve a
Vec<&'static str>
of the variant names.
NOTE: This macro automaically implements std::str::FromStr and std::fmt::Display
§Example
simple_enum!{Foo => Bar, Baz, Qux}
// Foo enum can now be used via Foo::Bar, or Foo::Baz, etc
// and implements std::str::FromStr to use with the value_t! macros
fn main() {
let enum_vals = ["Bar", "Baz", "Qux"];
let m = App::new("app")
.arg(Arg::from_usage("<foo> 'the foo'")
.possible_values(&enum_vals))
.get_matches();
let f = value_t_or_exit!(m.value_of("foo"), Foo);
// Use f like any other Foo variant...
}