| use clap::{arg, command, value_parser, ArgAction}; |
| let matches = command!() // requires `cargo` feature |
| .arg(arg!(eff: -f).action(ArgAction::SetTrue)) |
| .arg(arg!(pea: -p <PEAR>).value_parser(value_parser!(String))) |
| // Indicates that `slop` is only accessible after `--`. |
| .value_parser(value_parser!(String)), |
| // This is what will happen with `myprog -f -p=bob -- sloppy slop slop`... |
| println!("-f used: {:?}", matches.get_flag("eff")); |
| // -p's value: Some("bob") |
| println!("-p's value: {:?}", matches.get_one::<String>("pea")); |
| // 'slops' values: Some(["sloppy", "slop", "slop"]) |
| .get_many::<String>("slop") |
| .map(|vals| vals.collect::<Vec<_>>()) |
| // Continued program logic goes here... |