1 个不稳定版本
0.1.0 | 2024年7月22日 |
---|
#120 在 #参数
127 每月下载量
在 cliargs 中使用
45KB
1K SLoC
cliargs_derive
此 derive 宏附加到一个包含命令行选项值的结构体上,并自动实现其方法以从其字段生成 OptCfg
,以及其他方法。
此宏自动实现从字段定义和 opt
字段属性生成 OptCfg
向量的方法,同时也实现了使用在 opt
字段属性中指定的默认值实例化结构体的方法,并实现了使用传递的 HashMap
中的值更新字段值的方法。
opt
字段属性可以有以下名称和值对:一个是 cfg
,用于指定 OptCfg
结构体的 names
和 defaults
;另一个是 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