Provides a wrapper to deserialize clap app using serde.
``` const CLAPTOML: &'static str = r#" name = "appclapserde" version = "1.0" author = "tomltester" about = "test-clap-serde" [subcommands] sub1 = { about = "subcommand1" } [subcommands.sub2] about = "subcommand2" [args] apple = { short = "a" } banana = { short = "b", long = "banana", aliases = ["musa_spp"] } [groups] fruit = { args = ["apple", "banana"] } "#;
let app: clap::App = toml::fromstr::
``` const NAMEJSON: &'static str = r#"{ "name" : "appclapserde", "version" : "1.0" , "author" : "jsontester", "about" : "test-clap-serde", "subcommands" : { "sub1" : {"about" : "subcommand1"}, "sub2" : {"about" : "subcommand2"}}, "args" : { "apple" : {"short" : "a" }, "banana" : {"short" : "b", "long" : "banana", "aliases" : [ "musa_spp" ]} }, "groups" : { "fruit" : { "args" : ["apple", "banana"] } } }"#;
let app: clap::App = serdejson::fromstr::
``` const YAMLSTR: &'static str = r#" name: appclapserde version : "1.0" about : yamlsupport! author : yaml_supporter
args: - apple : - short: a - banana: - short: b - long: banana - aliases : - musa_spp
subcommands: - sub1: - about : subcommand1 - sub2: - about : subcommand2
"#; let yaml = yamlrust::Yaml::Array(yamlrust::YamlLoader::loadfromstr(YAMLSTR).expect("not a yaml")); let app = clapserde::yamltoapp(&yaml).expect("parse failed from yaml"); asserteq!(app.getname(), "appclapserde"); ```
Settings names format for AppSettings
and ArgSettings
.
- PascalCase (no-feature, same as variants name in enum)
- kebab-case (kebab-case-setting)
- snake_case (snake-case-setting)