#[macro_use] extern crate serde_derive; extern crate float_pigment_consistent_bincode as bincode; use bincode::{deserialize, serialize}; #[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).unwrap(); // 8 bytes for the length of the vector (usize), 4 bytes per float. assert_eq!(encoded.len(), 8 + 4 * 4); let decoded: World = deserialize(&encoded[..]).unwrap(); assert_eq!(world, decoded); }