use serde::{de::DeserializeOwned, Deserialize, Serialize}; #[repr(C)] #[derive(Serialize, Deserialize)] pub struct Envelope { size: u64, data: Vec, } impl Envelope { pub fn pack(d: T) -> Self { let data = bincode::serialize(&d).unwrap(); let size = data.len() as u64; Self { size, data } } pub fn unpack(self) -> T { bincode::deserialize(&self.data).unwrap() } }