Crate structopt_yaml[][src]

structopt-yaml is an default value loader from YAML for structopt.

Examples

The following example show a quick example of structopt-yaml.

If derive(Deserialize), derive(StructOptYaml) and serde(default) are added to the struct with derive(StructOpt), some functions like from_args_with_yaml can be used.

use serde_derive::Deserialize;
use structopt::StructOpt;
use structopt_yaml::StructOptYaml;

#[derive(Debug, Deserialize, StructOpt, StructOptYaml)]
#[serde(default)]
struct Opt {
    #[structopt(default_value = "0", short = "a")] a: i32,
    #[structopt(default_value = "0", short = "b")] b: i32,
}

fn main() {
    let yaml_str = r#"
        a: 10
    "#;
    let opt = Opt::from_args_with_yaml(yaml_str).expect("yaml parse failed");
    println!("a:{}", opt.a);
    println!("b:{}", opt.b);
}

The execution result of the above example is below.

$ ./example
a:10        // value from YAML string
b:0         // value from default_value of structopt

$ ./example -a 20
a:20        // value from command line argument
b:0

Modules

clap

Re-export of clap

serde

Re-export of serde

structopt

Re-export of structopt

Traits

StructOptYaml