cmder 0.6.1

A simple, lightweight, command line argument parser for rust codebases
Documentation
use cmder::{
    self, ParserMatches, {Command, Program},
};

fn create_default_program() -> Command<'static> {
    let mut program = Program::new();

    program
        .author("vndaba")
        .version("0.1.0")
        .description("A test CLI App")
        .bin_name("simple");

    program
        .subcommand("test")
        .argument("<app-name>", "Pass the name of the app to test")
        .alias("t")
        .description("A test subcommand")
        .option("-a --all", "Run all the configured tests")
        .option("-q --quiet", "Don't show tests output")
        .action(basic_cmd_cb);

    program
}

#[test]
fn test_basic_api() {
    let mut program = create_default_program();
    program.parse_from(vec!["simple", "t", "app", "--all", "--quiet"]);
}

fn basic_cmd_cb(m: ParserMatches) {
    let cmd = m.get_matched_cmd();

    assert!(m.contains_flag("--quiet"));
    assert!(m.contains_flag("--all"));
    assert!(cmd.is_some());

    assert_eq!(m.get_arg("<app-name>").unwrap(), "app");
    assert_eq!(cmd.unwrap().get_name(), "test");
}