Parse environment variables in serde
crate using deserialize_with
.
```rust use serdejson; use serde::Deserialize; use serdewithexpandenv::withexpandenvs;
struct Test { #[serde(deserializewith="withexpandenvs")] number: usize, #[serde(deserializewith="withexpandenvs")] string: String, }
fn main() { let serialized = r#"{"number": "$NUMBER", "string": "my string: $STRING"}"#;
envmnt::set("NUMBER", "42");
envmnt::set("STRING", "hacker");
let deserialized: Test = serde_json::from_str(&serialized).unwrap();
assert_eq!(deserialized.number, 42);
assert_eq!(deserialized.string, "my string: hacker");
// Invalid number
envmnt::set("NUMBER", "cuarentaydos");
envmnt::set("STRING", "42");
assert_eq!(serde_json::from_str::<Test>(&serialized).is_err(), true);
} ```