01_prefix_option/01_prefix_option.rs
1use aopt::prelude::*;
2
3pub fn main() -> Result<(), aopt::Error> {
4 let mut parser = AFwdParser::default();
5
6 // add option with value type `b`, i.e. option with bool value or flag
7 parser.add_opt("-f=b")?;
8 parser.add_opt("--flag".infer::<bool>())?;
9
10 parser.parse(Args::from(["app", "-f"].into_iter()))?.ok()?;
11
12 // option with bool type has default value `false`
13 assert_eq!(parser.find_val::<bool>("-f")?, &true);
14 assert_eq!(parser.find_val::<bool>("--flag")?, &false);
15
16 parser.add_opt("-flag=b!")?;
17 parser.add_opt("--/flag=b")?;
18
19 parser
20 .parse(Args::from(["app", "-flag", "--/flag"].into_iter()))?
21 .ok()?;
22
23 // option with bool type has default value `false`
24 assert_eq!(parser.find_val::<bool>("-flag")?, &true);
25 assert_eq!(parser.find_val::<bool>("--/flag")?, &true);
26
27 Ok(())
28}