#[macro_use] extern crate serde_derive; extern crate zlo; use zlo::{serialize, deserialize, Infinite}; #[derive(Serialize, Deserialize, PartialEq, Debug)] struct Entity { x: f32, y: f32, } #[derive(Serialize, Deserialize, PartialEq, Debug)] struct World(Vec); fn main() { let world = World(vec![Entity { x: 0.0, y: 4.0 }, Entity { x: 10.0, y: 20.5 }]); let encoded: Vec = serialize(&world, Infinite).unwrap(); // bincode's size assert_ne!(encoded.len(), 24); // zlo's size assert_eq!(encoded.len(), 13); let decoded: World = deserialize(&encoded[..]).unwrap(); assert_eq!(world, decoded); }