1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
use clap::{app_from_crate, arg};

fn main() {
    let matches = app_from_crate!()
        .arg(
            arg!(<PORT>)
                .help("Network port to use")
                .validator(|s| s.parse::<usize>()),
        )
        .get_matches();

    // Note, it's safe to call unwrap() because the arg is required
    let port: usize = matches
        .value_of_t("PORT")
        .expect("'MODE' is required and parsing will fail if its missing");
    println!("PORT = {}", port);
}