03_combination_style/
03_combination_style.rs1use aopt::prelude::*;
2
3pub fn main() -> Result<(), aopt::Error> {
4 let mut parser = AFwdParser::default();
5
6 parser.add_opt("-a=b")?;
8 parser.add_opt("-b=b")?;
9 parser.add_opt("-c".infer::<bool>())?;
10 parser.add_opt("d=b")?;
11 parser.add_opt("e=b")?;
12 parser.add_opt("f".infer::<bool>())?;
13
14 parser.enable_combined();
16 parser
17 .parse(Args::from(["app", "-abc", "def"].into_iter()))?
18 .ok()?;
19
20 assert_eq!(parser.find_val::<bool>("-a")?, &true);
21 assert_eq!(parser.find_val::<bool>("-b")?, &true);
22 assert_eq!(parser.find_val::<bool>("-c")?, &true);
23 assert_eq!(parser.find_val::<bool>("d")?, &false);
24 assert_eq!(parser.find_val::<bool>("e")?, &false);
25 assert_eq!(parser.find_val::<bool>("f")?, &false);
26
27 parser.validator_mut().add_prefix("");
30 parser.set_strict(false);
31 parser
32 .parse(Args::from(["app", "-abc", "def"].into_iter()))?
33 .ok()?;
34
35 assert_eq!(parser.find_val::<bool>("-a")?, &true);
36 assert_eq!(parser.find_val::<bool>("-b")?, &true);
37 assert_eq!(parser.find_val::<bool>("-c")?, &true);
38 assert_eq!(parser.find_val::<bool>("d")?, &true);
39 assert_eq!(parser.find_val::<bool>("e")?, &true);
40 assert_eq!(parser.find_val::<bool>("f")?, &true);
41
42 Ok(())
43}