02_option_value/
02_option_value.rs

1use aopt::prelude::*;
2
3pub fn main() -> Result<(), aopt::Error> {
4    let mut parser = AFwdParser::default();
5
6    // add option need argument with type `i`, i.e. i64
7    parser.add_opt("-f=i")?;
8    parser.add_opt("--flag=s")?;
9    parser.add_opt("-flag".infer::<f32>())?;
10
11    parser
12        .parse(Args::from(
13            ["app", "-f42", "--flag", "foo", "-flag=2.1"].into_iter(),
14        ))?
15        .ok()?;
16
17    assert_eq!(parser.find_val::<i64>("-f")?, &42);
18    assert_eq!(parser.find_val::<String>("--flag")?, "foo");
19    assert_eq!(parser.find_val::<f32>("-flag")?, &2.1);
20
21    Ok(())
22}