mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 23:02:31 +00:00
7e899cd340
This reverts commits 24cb8b1..d0abb37 from clap-rs/clap#1840 This is part of #16. clap-rs/clap#1840 wasn't the right call but we don't have time to make the decision now, so instead of having one option and changing it in 4.0, this reverts back to clap2 behavior.
37 lines
1.3 KiB
Rust
37 lines
1.3 KiB
Rust
use clap::{App, Arg};
|
|
|
|
fn main() {
|
|
// If you have arguments of specific values you want to test for, you can use the
|
|
// .possible_values() method of Arg
|
|
//
|
|
// This allows you specify the valid values for that argument. If the user does not use one of
|
|
// those specific values, they will receive a graceful exit with error message informing them
|
|
// of the mistake, and what the possible valid values are
|
|
//
|
|
// For this example, assume you want one positional argument of either "fast" or "slow"
|
|
// i.e. the only possible ways to run the program are "myprog fast" or "myprog slow"
|
|
let matches = App::new("myapp")
|
|
.about("does awesome things")
|
|
.arg(
|
|
Arg::new("MODE")
|
|
.help("What mode to run the program in")
|
|
.index(1)
|
|
.possible_values(["fast", "slow"])
|
|
.required(true),
|
|
)
|
|
.get_matches();
|
|
|
|
// Note, it's safe to call unwrap() because the arg is required
|
|
match matches
|
|
.value_of("MODE")
|
|
.expect("'MODE' is required and parsing will fail if its missing")
|
|
{
|
|
"fast" => {
|
|
println!("Hare");
|
|
}
|
|
"slow" => {
|
|
println!("Tortoise");
|
|
}
|
|
_ => unreachable!(),
|
|
}
|
|
}
|