6 个版本 (3 个重大更新)
新版本 0.4.0 | 2024 年 8 月 19 日 |
---|---|
0.3.0 | 2023 年 12 月 27 日 |
0.2.0 | 2023 年 9 月 21 日 |
0.1.4 | 2023 年 7 月 9 日 |
0.1.1 | 2023 年 6 月 25 日 |
#190 在 命令行界面
179 每月下载量
用于 22 个 crate(21 个直接使用)
9KB
120 代码行
arrrg
arrrg 提供了一个具有观点的 [CommandLine] 解析器。
例如,让我们考虑这里使用 derive 语法指定的解析器
use arrrg_derive::CommandLine;
#[derive(CommandLine, Debug, Default, Eq, PartialEq)]
struct Options {
#[arrrg(optional, "this is the help text", "PLACEHOLDER")]
some_string: String,
#[arrrg(nested)]
some_prefix: SomeOptions,
}
#[derive(CommandLine, Debug, Default, Eq, PartialEq)]
struct SomeOptions {
#[arrrg(required, "this is the help text", "PLACEHOLDER")]
a: String,
#[arrrg(optional, "this is the help text", "PLACEHOLDER")]
b: String,
}
这将提供获取 opts 的选项 --some-string
,--some-prefix-a
,--some-prefix-b
。一般来说,规则是从结构体成员的标识符派生标志名称。当嵌套时,名称将是父结构体的前缀和子结构体成员标识符的连接。可以实现无限嵌套。下划线将转换为连字符。
此库对命令行持有观点。命令行上应该恰好有一个规范参数顺序,并且所有应用程序都必须考虑到这一点。库的用户可以调用 CommandLine::from_command_line_relaxed 来禁用此检查。
状态
维护轨道。该库被认为是稳定的,如果一年内没有变化,将进入维护模式。
范围
arrrg 将提供 CommandLine 特性和 getopts 的封装。
缺点
- 嵌套 derive 参数名称可能难以处理。
文档
最新文档始终可在 docs.rs 上找到。
依赖关系
~2MB
~38K SLoC