use borsh::BorshSerialize; #[derive(BorshSerialize)] #[repr(u8)] pub enum Thing1 { A([u8; 32]), B(String), } #[derive(BorshSerialize)] #[repr(u32)] pub enum Thing2 { A([u8; 32]), B(String), } fn main() { let thing1 = Thing1::A([0; 32]); let thing12 = Thing1::B("asdf".to_string()); let thing2 = Thing2::A([0; 32]); let thing22 = Thing2::B("asdf".to_string()); let bytes1 = borsh::to_vec(&thing1).unwrap(); let bytes2 = borsh::to_vec(&thing2).unwrap(); println!("thing1: {}", bytes1.len()); println!("thing2: {}", bytes2.len()); let bytes1 = borsh::to_vec(&thing12).unwrap(); let bytes2 = borsh::to_vec(&thing22).unwrap(); println!("thing12: {}", bytes1.len()); println!("thing22: {}", bytes2.len()); }