Provides a wrapper to deserialize clap app using serde.

toml

``` 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::(CLAPTOML) .expect("parse failed") .into(); asserteq!(app.getname(), "appclapserde"); asserteq!(app.getabout(), Some("test-clap-serde")); ```

json

``` 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::(NAMEJSON) .expect("parse failed") .into(); asserteq!(app.getname(), "appclapserde"); asserteq!(app.get_about(), Some("test-clap-serde")); ```

yaml

Not working because serde_yaml only accepts DeserializeOwned.