28 releases (12 stable)
Uses old Rust 2015
1.1.7 | Jun 23, 2024 |
---|---|
1.1.6 | Mar 30, 2024 |
1.1.4 | Jan 19, 2024 |
1.1.3 | Jan 6, 2022 |
0.3.1 | Nov 30, 2018 |
#519 in Command line utilities
196 downloads per month
Used in 11 crates
(10 directly)
28KB
463 lines
getopt
A minimal, (essentially) POSIX-compliant option parser.
getopt::Parser
iterates over the provided arguments, producing options one at
a time in the order in which they are given on the command line, and stopping
at the first non-option argument.
Example:
#![allow(unused_assignments, unused_variables)]
use getopt::Opt;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args: Vec<String> = std::env::args().collect();
let mut opts = getopt::Parser::new(&args, "ab:");
let mut a_flag = false;
let mut b_flag = String::new();
loop {
match opts.next().transpose()? {
None => break,
Some(opt) => match opt {
Opt('a', None) => a_flag = true,
Opt('b', Some(string)) => b_flag = string.clone(),
_ => unreachable!(),
}
}
}
let args = args.split_off(opts.index());
// …
Ok(())
}