I'm sorry for this basic question. I want to use the rust type system, namely an enum that holds the data for each command that I can send the device across the wire. The problem that I'm having is that it's always allocating the size of the largest member of the enum type. Is there a way to only have it use the size of the member involved? Is there a best practice here for embedded systems that I do not know? So I have `None` that is the unit type so should be erased. And then I have the Read and Write Notepad functions that are 512bytes + 1byte. What's the correct way to handle this to only send the smallest ammount of bytes across the wire? ``` #[repr(u8)] pub enum ParameterSetting { /// The Parameter controls the UART communication speed of the Module. Its value is an integer N, N= [1/2/4/6/12]. Corresponding baud rate is 9600*N bps. BaudRateControl = 4, /// The Parameter controls the matching threshold value of fingerprint searching and matching. Security level is divided into 5 grades, and corresponding value is 1, 2, 3, 4, 5. At level 1, FAR is the highest and FRR is the lowest; however at level 5, FAR is the lowest and FRR is the highest. SecurityLevel = 5, /// The parameter decides the max length of the transferring data package when communicating with upper computer. Its value is 0, 1, 2, 3, corresponding to 32 bytes, 64 bytes, 128 bytes, 256 bytes respectively. DataPackageLength = 6, } pub type NotePageNum = u8; pub type Password = u32; pub type Address = u32; pub type Page = [u8; 512]; pub enum Payload { None, VfyPwd(Password), SetPwd(Password), SetAdder(Address), SetSysPara(ParameterSetting, u8), // A BUNCH MORE WriteNotepad(NotePageNum, Page), ReadNotepad(NotePageNum), } ```