Crate structopt_toml
source · [−]Expand description
structopt-toml
is an default value loader from TOML for structopt.
Examples
The following example show a quick example of structopt-toml
.
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,
}
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 of the above example 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