Enum variant parsing

This commit is contained in:
Pantonshire committed 2021-05-16 16:59:05 +01:00
1 parent dee1f49d1a
commit c7cc6507ad
4 files changed
+324 -135

No files matched your search

+8 -29
View File
@@ -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!");
}