#命令行参数 #解析 # #命令 #参数 #CLI

cliargs_derive

这是一个 derive 宏,它自动为结构体实例实现一些解析命令行参数的方法

1 个不稳定版本

0.1.0 2024年7月22日

#120#参数

Download history 115/week @ 2024-07-21 10/week @ 2024-07-28 2/week @ 2024-08-04

127 每月下载量
cliargs 中使用

MIT 许可证

45KB
1K SLoC

cliargs_derive crate.io doc.rs CI Status MIT License

此 derive 宏附加到一个包含命令行选项值的结构体上,并自动实现其方法以从其字段生成 OptCfg,以及其他方法。

此宏自动实现从字段定义和 opt 字段属性生成 OptCfg 向量的方法,同时也实现了使用在 opt 字段属性中指定的默认值实例化结构体的方法,并实现了使用传递的 HashMap 中的值更新字段值的方法。

opt 字段属性可以有以下名称和值对:一个是 cfg,用于指定 OptCfg 结构体的 namesdefaults;另一个是 desc,用于指定 OptCfg 结构体的 desc;还有一个是 arg,用于指定 OptCfg 结构体的 arg_in_help

cfg的格式如下:cfg="f,foo=123"。等号左侧是选项名,右侧是默认值。如果没有等号,则认为只指定了选项名。如果要指定多个选项名,请用逗号分隔。如果要指定多个默认值,请用逗号分隔,并用方括号括起来,例如:[1,2,3]。如果想要使用自己喜欢的字符作为分隔符,可以将它放在左方括号的左侧,例如:/[1/2/3]

以下代码是一个选项存储结构的示例。

extern crate cliargs_derive;
use cliargs_derive::OptStore;

#[derive(OptStore)]
struct MyOptions {
    #[opt(cfg="f,foo-bar", desc="The description of foo-bar.")]
    foo_bar: bool,

    #[opt(cfg="b", desc="The description of baz.", arg="text")]
    baz: String,

    #[opt(cfg="q=[1,2,3]", desc="The description of qux.", arg="num...")]
    qux: Vec<u8>,
}

许可证

版权所有 (C) 2024 Takayuki Sato

本程序是在 MIT 许可证下提供的免费软件。
有关详细信息,请参阅本发行版中的 LICENSE 文件。

依赖项

~265–710KB
~17K SLoC