1pub trait Byteable: Sized { 2 fn to_bytes(&self) -> Vec<u8>; 3 fn from_bytes(bytes: &[u8]) -> Option<Self>; 4 fn byte_size(&self) -> usize { 5 self.to_bytes().len() 6 } 7}