use aopt::prelude::*;
pub fn main() -> Result<(), aopt::Error> {
let mut parser = AFwdParser::default();
parser.add_opt("--flag=b")?;
parser.add_opt("--foo=s")?;
parser.add_opt("first=p@1")?;
parser.add_opt("list=c")?;
parser.add_opt("second@2".infer::<Pos<String>>())?;
parser.enable_combined();
parser
.parse(Args::from(
["app", "list", "--foo", "value", "bar"].into_iter(),
))?
.ok()?;
assert_eq!(parser.find_val::<bool>("list")?, &true);
assert_eq!(parser.find_val::<bool>("first")?, &true);
assert_eq!(parser.find_val::<String>("second")?, "bar");
Ok(())
}