16 个版本
0.5.1 | 2022年7月9日 |
---|---|
0.5.0 | 2021年7月27日 |
0.4.5 | 2020年5月6日 |
0.4.2 | 2020年3月12日 |
0.2.4 | 2018年3月20日 |
#588 在 命令行界面
每月 866 次下载
用于 2 crates
10KB
85 行代码(不含注释)
structopt-toml
为 structopt 提供从 TOML 加载默认值的加载器。它与 structopt 结合使用。
用法
此 crate 必须与 serde
、serde_derive
、structopt
和 toml
显式使用。
[dependencies]
serde = "1.0.104"
serde_derive = "1.0.104"
structopt = "0.3.11"
structopt-toml = "0.5.1"
toml = "0.5.6"
示例
如果将 derive(Deserialize)
、derive(StructOptToml)
和 serde(default)
添加到具有 derive(StructOpt)
的结构体中,则可以使用一些功能,如 from_args_with_toml
。
use serde_derive::Deserialize;
use structopt::StructOpt;
use structopt_toml::StructOptToml;
#[derive(Debug, Deserialize, StructOpt, StructOptToml)]
#[serde(default)]
struct Opt {
#[structopt(default_value = "0", short = "a")] a: i32,
#[structopt(default_value = "0", short = "b")] b: i32,
}
fn main() {
let toml_str = r#"
a = 10
"#;
let opt = Opt::from_args_with_toml(toml_str).expect("toml parse failed");
println!("a:{}", opt.a);
println!("b:{}", opt.b);
}
执行结果如下。
$ ./example
a:10 // value from TOML string
b:0 // value from default_value of structopt
$ ./example -a 20
a:20 // value from command line argument
b:0
许可证
根据以下任一许可证授权:
- Apache License,版本 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,应作为上述双重许可,不附加任何额外条款或条件。
依赖关系
~1.9–4MB
~58K SLoC