| Crates.io | structopt-toml |
| lib.rs | structopt-toml |
| version | 0.5.1 |
| created_at | 2018-03-19 10:36:41.868628+00 |
| updated_at | 2022-07-09 08:14:27.148594+00 |
| description | An default value loader from TOML for structopt |
| homepage | |
| repository | https://github.com/dalance/structopt-toml |
| max_upload_size | |
| id | 56390 |
| size | 26,533 |
An default value loader from TOML for structopt. It combinates with structopt.
This crate must be used with serde, serde_derive, structopt, and toml explicitly.
[dependencies]
serde = "1.0.104"
serde_derive = "1.0.104"
structopt = "0.3.11"
structopt-toml = "0.5.1"
toml = "0.5.6"
If derive(Deserialize), derive(StructOptToml) and serde(default) are added to the struct with derive(StructOpt), some functions like from_args_with_toml can be used.
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);
}
The execution result is below.
$ ./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
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.