Crates.io | argsyn |
lib.rs | argsyn |
version | 0.7.2 |
source | src |
created_at | 2023-07-22 17:01:38.443614 |
updated_at | 2024-11-25 07:44:46.260701 |
description | A complete implementation of GNU-style argument syntax |
homepage | |
repository | https://github.com/TheDocTrier/argsyn |
max_upload_size | |
id | 923347 |
size | 17,493 |
argsyn
, an Argument Parser for GNU-style SyntaxThis crate provides a complete implementation of GNU-style argument parsing as described at
https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
Arguments are converted into basics, flags, pairs, and a few other types according to the GNU-style.
Here is a visual example of how a sequence of arguments is converted with "xy"
specified as short pairs:
$ program arg1 -abcx12 -y 3 --long --key=value - arg2 -- -kh --ignore
| | |||| | | | | | | | |
Basic(program)|||| | | | | | | Basic(-kh)
Basic(arg1) | | | | | | Basic(--ignore)
Flag(a) | | | | | |
Flag(b)| | | | | |
Flag(c) | | | | |
Pair(x,12) | | | | |
Pair(y,3) | | | |
Flag(long) | | |
Pair(key,value) |
Stdin |
Basic(arg2)
Done
In Rust, to print all arguments parsed, it is as simple as:
for opt in std::env::args().opts("xy").unwrap() {
println!("{:?}", opt.simplify());
}