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命令行界面

Download history 32/week @ 2024-04-28 25/week @ 2024-05-05 21/week @ 2024-05-12 49/week @ 2024-05-19 51/week @ 2024-05-26 54/week @ 2024-06-02 32/week @ 2024-06-09 54/week @ 2024-06-16 46/week @ 2024-06-23 13/week @ 2024-06-30 44/week @ 2024-07-07 59/week @ 2024-07-14 49/week @ 2024-07-21 44/week @ 2024-07-28 44/week @ 2024-08-04 39/week @ 2024-08-11

179 每月下载量
用于 22 个 crate(21 个直接使用)

Apache-2.0

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