diff options
author | XX <freecoder.xx@gmail.com> | 2018-04-08 16:30:57 +0300 |
---|---|---|
committer | XX <freecoder.xx@gmail.com> | 2018-04-08 16:30:57 +0300 |
commit | 23ef2f466d972925ccae83a7394826457ebda27d (patch) | |
tree | eab99ac1ee54d974c181a707dfbe018a8f4acdcc | |
parent | 52975a263612cea41fb3047a5e8f2bac9e1819b4 (diff) |
Add ConfigSerializer
-rw-r--r-- | src/lib.rs | 4 | ||||
-rw-r--r-- | src/ser.rs | 21 |
2 files changed, 25 insertions, 0 deletions
@@ -26,6 +26,10 @@ #[macro_use] extern crate serde; +#[cfg(test)] +#[macro_use] +extern crate serde_derive; + extern crate nom; #[macro_use] @@ -609,3 +609,24 @@ impl ser::SerializeStructVariant for StringKeySerializer { unreachable!() } } + +#[cfg(test)] +mod test { + use super::*; + use serde::Serialize; + + #[test] + fn test_struct() { + #[derive(Debug, Serialize, Deserialize, PartialEq)] + struct Test { + int: u32, + seq: Vec<String>, + } + + let test = Test { int: 1, seq: vec!["a".to_string(), "b".to_string()] }; + let config = Config::try_from(&test).unwrap(); + + let actual: Test = config.try_into().unwrap(); + assert_eq!(test, actual); + } +} |