Enum variant parsing
This commit is contained in:
1 parent
dee1f49d1a
commit
c7cc6507ad
4 files changed
+324
-135
No files matched your search
+8
-29
@@ -1,36 +1,15 @@
|
||||
#[macro_use]
|
||||
extern crate enumscribe;
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[derive(EnumStrDeserialize, PartialEq, Eq, Debug)]
|
||||
#[case_insensitive]
|
||||
enum Airport {
|
||||
#[str_name("LHR")]
|
||||
Heathrow,
|
||||
#[str_name("LGW")]
|
||||
Gatwick,
|
||||
#[str_name("LTN")]
|
||||
Luton,
|
||||
#[str_name("BHX")]
|
||||
BirminghamInternational,
|
||||
#[other]
|
||||
Other(Box<String>),
|
||||
#[derive(EnumToString)]
|
||||
enum Foo {
|
||||
Baa,
|
||||
#[enumscribe(ignore)]
|
||||
Baz(),
|
||||
#[enumscribe(other)]
|
||||
Lorem { inner: String }
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let json_str = r#"
|
||||
{
|
||||
"airport_1": "LTN",
|
||||
"airport_2": "bhx",
|
||||
"airport_3": "lHr",
|
||||
"airport_4": "MAN"
|
||||
}"#;
|
||||
|
||||
let json: HashMap<String, Airport> = serde_json::from_str(json_str).unwrap();
|
||||
|
||||
println!("{:?}", json.get("airport_1").unwrap());
|
||||
println!("{:?}", json.get("airport_2").unwrap());
|
||||
println!("{:?}", json.get("airport_3").unwrap());
|
||||
println!("{:?}", json.get("airport_4").unwrap());
|
||||
println!("Hello world!");
|
||||
}
|
||||
Reference in new issue
Block a user