mirror of
https://github.com/clap-rs/clap
synced 2024-12-13 22:32:33 +00:00
befee6667b
This creates distinct tutorial examples from complex feature examples (more how-tos). Both sets are getting builder / derive versions (at least the critical ones).
29 lines
543 B
Rust
29 lines
543 B
Rust
use clap::{ArgEnum, Parser};
|
|
|
|
#[derive(Parser)]
|
|
#[clap(author, version, about)]
|
|
struct Cli {
|
|
/// What mode to run the program in
|
|
#[clap(arg_enum)]
|
|
mode: Mode,
|
|
}
|
|
|
|
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ArgEnum)]
|
|
enum Mode {
|
|
Fast,
|
|
Slow,
|
|
}
|
|
|
|
fn main() {
|
|
let cli = Cli::parse();
|
|
|
|
// Note, it's safe to call unwrap() because the arg is required
|
|
match cli.mode {
|
|
Mode::Fast => {
|
|
println!("Hare");
|
|
}
|
|
Mode::Slow => {
|
|
println!("Tortoise");
|
|
}
|
|
}
|
|
}
|