Expand description
§getopt2 command line parser
§Main features
- Unknown / incomplete options are turned into positional arguments.
- GNU getopt flexible argument parsing rules. Options and positional arguments can be mixed.
- Double dash
--support for options / arguments separation. - POSIX mode parsing when optstring starts with “+”. First non option stops options parsing, rest is parsed as positional arguments.
- Optional argument support “::”. Optional argument is separated by space.
- Allow use of “?” as option character. Always active, supported compatibility with getopt extension when optstring starts with “:”.
- Parsing is not strict. If optstring is correct, parsing never fails.
getopt2::new parses the command line elements and isolates arguments from options.
It returns a getopt structure where you can query options and use isolated arguments.
A 2 characters long element that starts with - (and is not exactly --) is an option element.
The character following the initial - is an option character.
A double dash -- can be used to indicate the end of options; any arguments following
it are treated as positional arguments.
Option values are separated from option element with spaces.
§See also
Alternative getopt3 parser have almost identical API but with different feature set. Main difference is that getopt3 doesn’t turn unrecognised / incomplete options into positional arguments.
§Example
use std::env::args;
use getopt2::hideBin;
let rc = getopt2::new(hideBin(args()), "ab:c");
if let Ok(g) = rc {
// command line options parsed sucessfully
if let Some(str) = g.options.get(&'b') {
// handle b argument
println!("option -b have {} argument", str);
};
};§Reference
- POSIX getopt function.
- GNU libc getopt function.
- FreeBSD getopt function.
- getopt3 parser crate.
Structs§
- getopt
- Parsed command line options.
Enums§
- argument
- Information if option have an argument.