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}