getargs

An argument parser that is truly zero-cost, similar to getopts.

Example usage:

```rust fn parseargs(args: &[String]) -> MyArgsStruct { // You are recommended to create a struct to hold your arguments let mut res = MyArgsStruct::default(); let mut opts = getargs::Options::new(args); while let Some(opt) = opts.next() { match opt? { // -a or --attack Opt::Short('a') | Opt::Long("attack") => res.attackmode = true, // -b Opt::Short('b') => res.suppressbees = true, // Unicode short options are supported Opt::Short('\u{2014}') => res.emdashes = true, // -e EXPRESSION, or -eEXPRESSION, or // --execute EXPRESSION, or --execute=EXPRESSION Opt::Short('e') | Opt::Long("execute") => res.execute = opts.arg()?, // An unknown option was passed opt => return Err(Error::UnknownOpt(opt)), } } }

fn main() { let args = std::env::args(); let options = parse_args(&args); } ```

Features

License

MIT.