pub comptime fn derive_serialize(s: TypeDefinition) -> Quoted
Generates a Serialize trait implementation for a struct type.
Serialize
s
A quoted code block containing the trait implementation
For a struct defined as:
struct Log<N> { fields: [Field; N], length: u32 }
This function generates code equivalent to:
impl<let N: u32> Serialize for Log<N> { let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N; fn serialize(self) -> [Field; Self::N] { let mut writer: Writer<Self::N> = Writer::new(); self.stream_serialize(&mut writer); writer.finish() } #[inline_always] fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) { Serialize::stream_serialize(self.fields, writer); Serialize::stream_serialize(self.length, writer); } }
Generates a
Serializetrait implementation for a struct type.Parameters
s: The struct type definition to generate the implementation forReturns
A quoted code block containing the trait implementation
Example
For a struct defined as:
This function generates code equivalent to: