//! How to use `arg_enum!` with `StructOpt`. use clap::arg_enum; use structopt::StructOpt; arg_enum! { #[derive(Debug)] enum Baz { Foo, Bar, FooBar } } #[derive(StructOpt, Debug)] struct Opt { /// Important argument. #[structopt(possible_values = &Baz::variants(), case_insensitive = true)] i: Baz, } fn main() { let opt = Opt::from_args(); println!("{:?}", opt); }