#[macro_use] extern crate serde_derive; extern crate bincode; use bincode::{serialize, deserialize, Infinite}; #[derive(Serialize, Deserialize, PartialEq)] struct Entity { x: f32, y: f32, } #[derive(Serialize, Deserialize, PartialEq)] 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(); // 8 bytes for the length of the vector, 4 bytes per float. assert_eq!(encoded.len(), 8 + 4 * 4); let decoded: World = deserialize(&encoded[..]).unwrap(); assert!(world == decoded); }