diff --git a/src/de.rs b/src/de.rs index a435e16..b3b2af0 100644 --- a/src/de.rs +++ b/src/de.rs @@ -1,15 +1,11 @@ -use std::collections::{HashMap, HashSet}; use serde::de::{ self, DeserializeSeed, MapAccess, SeqAccess, Visitor, }; -use serde::{Serialize}; use serde::Deserialize; use crate::bipack_source::{BipackSource, VecSource}; use crate::error::{Error, Result}; -use crate::ser::to_bytes; -use crate::tools::to_dump; pub struct Deserializer { // This string starts with the input data and characters are truncated off @@ -236,57 +232,66 @@ fn test_ints() -> Result<()> { Ok(()) } -#[test] -fn test_struct() -> Result<()> { - #[derive(Serialize, Deserialize, PartialEq, Debug)] - struct Test { - int: u32, - seq: Vec, +mod tests { + use std::collections::{HashMap, HashSet}; + + use serde::{Deserialize, Serialize}; + + use crate::de::from_bytes; + use crate::error::Result; + use crate::ser::to_bytes; + use crate::tools::to_dump; + + #[test] + fn test_struct() -> Result<()> { + #[derive(Serialize, Deserialize, PartialEq, Debug)] + struct Test { + int: u32, + seq: Vec, + } + let expected = Test { + int: 1, + seq: vec!["a".to_owned(), "b".to_owned()], + }; + + let packed = to_bytes(&expected)?; + println!("::{}", to_dump(&packed)); + let unpacked: Test = from_bytes(packed)?; + println!("::{:?}", unpacked); + assert_eq!(&expected, &unpacked); + Ok(()) + + // let j = r#"{"int":1,"seq":["a","b"]}"#; + // assert_eq!(expected, from_str(j).unwrap()); } - let expected = Test { - int: 1, - seq: vec!["a".to_owned(), "b".to_owned()], - }; - let packed = to_bytes(&expected)?; - println!("::{}", to_dump(&packed)); - let unpacked: Test = from_bytes(packed)?; - println!("::{:?}", unpacked); - assert_eq!(&expected, &unpacked); - Ok(()) + #[test] + fn test_map() -> Result<()> { + let mut src = HashMap::new(); + src.insert("foo".to_string(), 1); + src.insert("foo".to_string(), 42); + src.insert("bar".to_string(), 1); + src.insert("baz".to_string(), 17); + let packed = to_bytes(&src)?; + println!("{}", to_dump(&packed)); - // let j = r#"{"int":1,"seq":["a","b"]}"#; - // assert_eq!(expected, from_str(j).unwrap()); -} + let restored: HashMap = from_bytes(packed)?; + println!("{:?}", restored); + assert_eq!(src, restored); -#[test] -fn test_map() -> Result<()> { + Ok(()) + } - let mut src = HashMap::new(); - src.insert("foo".to_string(), 1); - src.insert("foo".to_string(), 42); - src.insert("bar".to_string(), 1); - src.insert("baz".to_string(), 17); - let packed = to_bytes(&src)?; - println!("{}", to_dump(&packed)); + #[test] + fn test_set() -> Result<()> { + let src = HashSet::from(["foo", "bar", "buz"].map(|i| i.to_string())); + let packed = to_bytes(&src)?; + println!("{}", to_dump(&packed)); - let restored: HashMap = from_bytes(packed)?; - println!("{:?}", restored); - assert_eq!(src, restored); + let restored: HashSet = from_bytes(packed)?; + println!("{:?}", restored); + assert_eq!(src, restored); - Ok(()) -} - -#[test] -fn test_set() -> Result<()> { - - let src = HashSet::from(["foo", "bar", "buz"].map(|i| i.to_string())); - let packed = to_bytes(&src)?; - println!("{}", to_dump(&packed)); - - let restored: HashSet = from_bytes(packed)?; - println!("{:?}", restored); - assert_eq!(src, restored); - - Ok(()) + Ok(()) + } } \ No newline at end of file