miniclap 0.1.1

a no-dependency command line parser
Documentation
use miniclap::{App, Arg, ArgKind};

fn app() -> App {
    App::new("test")
        .arg(Arg::new("output", 'o', ArgKind::Value))
        .arg(Arg::new("format", 'f', ArgKind::Value))
}

#[test]
fn value_absent_is_none() {
    let m = app().parse_args(&[]);

    assert_eq!(m.value("output"), None);
}

#[test]
fn value_long_separate() {
    let m = app().parse_args(&["--output", "file.txt"]);

    assert_eq!(m.value("output"), Some("file.txt"));
}

#[test]
fn value_long_equals() {
    let m = app().parse_args(&["--output=file.txt"]);

    assert_eq!(m.value("output"), Some("file.txt"));
}

#[test]
fn value_short_separate() {
    let m = app().parse_args(&["-o", "file.txt"]);

    assert_eq!(m.value("output"), Some("file.txt"));
}

#[test]
fn value_short_adjacent() {
    let m = app().parse_args(&["-ofile.txt"]);

    assert_eq!(m.value("output"), Some("file.txt"));
}

#[test]
fn value_multiple_independent() {
    let m = app().parse_args(&["--output", "a.txt", "--format", "json"]);

    assert_eq!(m.value("output"), Some("a.txt"));
    assert_eq!(m.value("format"), Some("json"));
}

#[test]
fn unknown_value_is_none() {
    let m = app().parse_args(&[]);

    assert_eq!(m.value("nonexistent"), None);
}