123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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<u8>,
- 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>() * data.len()
- );
- println!("serialized size: {}", to_allocvec(&data).unwrap().len());
- println!("compressed size: {}", as_string.len());
- let decoded: Vec<Data> = deserialize_props::serde_from_string(&as_string).unwrap();
- assert_eq!(data, decoded);
- }
- }
- }
|