argx 0.3.0

Expressive command-line parsing and configuration for Rust.
Documentation
#[derive(argx::Parser)]
struct DuplicateLong {
    #[argx(long = "same")]
    first: bool,
    #[argx(long = "same")]
    second: bool,
}

#[derive(argx::Parser)]
struct DuplicateShort {
    #[argx(short = 'x')]
    first: bool,
    #[argx(short = 'x')]
    second: bool,
}

#[derive(argx::Parser)]
struct InvalidLong {
    #[argx(long = "--bad")]
    value: bool,
}

#[derive(argx::Parser)]
struct RequiredAfterOptional {
    optional: Option<String>,
    required: String,
}

#[derive(argx::Parser)]
struct VariadicBeforeAnotherPositional {
    many: Vec<String>,
    later: Option<String>,
}

fn main() {}

#[derive(argx::Parser)]
struct ReservedLongHelp {
    #[argx(long = "help")]
    value: bool,
}

#[derive(argx::Parser)]
struct ReservedShortHelp {
    #[argx(short = 'h')]
    value: bool,
}