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}