pub(crate) mod deserialize_props; pub(crate) mod serialize_props; #[test] fn serialized_and_deserializes() { use postcard::to_allocvec; #[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Clone)] struct Data { a: u32, b: String, bytes: Vec, nested: Nested, } #[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Clone)] struct Nested { a: u32, b: u16, c: u8, } for x in 0..10usize { for y in 0..10 { let mut as_string = String::new(); let data = vec![ Data { a: x as u32, b: "hello".to_string(), bytes: vec![0; x], nested: Nested { a: 1, b: x as u16, c: 3 }, }; y ]; serialize_props::serde_to_writable(&data, &mut as_string).unwrap(); println!("{}", as_string); println!( "original size: {}", std::mem::size_of::() * data.len() ); println!("serialized size: {}", to_allocvec(&data).unwrap().len()); println!("compressed size: {}", as_string.len()); let decoded: Vec = deserialize_props::serde_from_string(&as_string).unwrap(); assert_eq!(data, decoded); } } }