diff options
author | Eugeen Sablin <EugeenSablin@gmail.com> | 2018-11-10 19:23:16 +0300 |
---|---|---|
committer | Eugeen Sablin <EugeenSablin@gmail.com> | 2018-11-10 19:23:16 +0300 |
commit | 2cb768bddc715c32e740a067652e7200c8d344f3 (patch) | |
tree | 1ca5ccc3a5794def758a765da835fe9b8b73b1a4 /tests/get.rs | |
parent | 802f947fa2b5060b605aa39c0c7c201ede9a5ed8 (diff) |
support reading enums from config
Diffstat (limited to 'tests/get.rs')
-rw-r--r-- | tests/get.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/get.rs b/tests/get.rs index 73eeeaf..7e3be8a 100644 --- a/tests/get.rs +++ b/tests/get.rs @@ -202,3 +202,26 @@ fn test_struct_array() { assert_eq!(s.elements.len(), 10); assert_eq!(s.elements[3], "4".to_string()); } + +#[test] +fn test_enum() { + #[derive(Debug, Deserialize, PartialEq)] + enum Diode { + Off, + Brightness(i32), + Blinking(i32, i32), + Pattern { name: String, inifinite: bool }, + } + #[derive(Debug, Deserialize)] + struct Settings { + diodes: HashMap<String, Diode>, + } + + let c = make(); + let s: Settings = c.try_into().unwrap(); + + assert_eq!(s.diodes["green"], Diode::Off); + assert_eq!(s.diodes["red"], Diode::Brightness(100)); + assert_eq!(s.diodes["blue"], Diode::Blinking(300, 700)); + assert_eq!(s.diodes["white"], Diode::Pattern{name: "christmas".into(), inifinite: true,}); +} |