7 个版本 (3 个稳定)
1.0.4 | 2023年12月4日 |
---|---|
1.0.3 | 2023年11月13日 |
0.2.3 | 2023年5月22日 |
0.2.0 | 2023年4月1日 |
0.1.0 | 2022年11月20日 |
#268 在 命令行界面
在 2 工具包中使用
275KB
6K SLoC
blarg
blarg
是一个 Rust 的命令行参数解析器。简要来说,它提供了类型安全、领域敏感的参数/选项范式的命令行解析器功能。查看 rustdoc 获取更多信息。
"blarg" 源于以下
- arg 表示参数解析器。
- blarg 因为其他名字都已经被人用了 🤪。
派生示例
use blarg::{derive::*, CommandLineParser, Parameter, Scalar, Switch};
#[derive(Debug, Default, BlargParser)]
#[blarg(program = "example")]
struct Parameters {
#[blarg(short = 'v')]
verbose: bool,
value: u32,
}
fn main() {
let parameters = Parameters::blarg_parse();
println!(
"value: {}, verbose: {}",
parameters.value, parameters.verbose
);
}
$ ./main -h
usage: example [-h] [-v] VALUE
positional arguments:
VALUE type: u32
options:
-h, --help Show this help message and exit.
-v, --verbose
构建器示例
use blarg::{CommandLineParser, Parameter, Scalar, Switch};
fn main() {
let mut verbose: bool = false;
let mut value: u32 = 0;
let ap = CommandLineParser::new("example");
let parser = ap
.add(Parameter::option(
Switch::new(&mut verbose, true),
"verbose",
Some('v'),
))
.add(Parameter::argument(Scalar::new(&mut value), "value").meta(vec!["type: u32"]))
.build();
parser.parse();
println!("value: {value}, verbose: {verbose}");
}
$ ./main -h
usage: example [-h] [-v] VALUE
positional arguments:
VALUE type: u32
options:
-h, --help Show this help message and exit.
-v, --verbose
开发
cargo build --workspace
cargo test --workspace
cargo doc --open --no-deps --all-features --package blarg
./target/debug/examples/reducer -h
依赖项
~2–14MB
~139K SLoC