1 use structopt::StructOpt;
2 use strum::{EnumString, EnumVariantNames, VariantNames};
3
4 const DEFAULT: &str = "txt";
5
6 #[derive(StructOpt, Debug)]
7 struct Opt {
8 #[structopt(
9 long,
10 possible_values = Format::VARIANTS,
11 case_insensitive = true,
12 default_value = DEFAULT,
13 )]
14 format: Format,
15 }
16
17 #[derive(EnumString, EnumVariantNames, Debug)]
18 #[strum(serialize_all = "kebab_case")]
19 enum Format {
20 Txt,
21 Md,
22 Html,
23 }
24
main()25 fn main() {
26 println!("{:?}", Opt::from_args());
27 }
28