Generates native Kiwi records: decoded values Rust code can read, change, and share without building Elixir terms, and encode later as the sparse maps generated decoders return.
The record runtime is schema-independent. The schema only supplies a definition table, read by the decoder and encoder, and constants naming each definition, field, and enum value for code that works with records:
kiwi_record_definitions::NODE_CHANGE
kiwi_records::node_change::FILL_PAINTS
kiwi_records::node_phase::REMOVEDDecoding needs the caller's Decoder<'a> to provide, besides the primitive readers,
read_byte_array_value(&mut self) -> NifResult<&'a [u8]>,
read_string_str(&mut self) -> NifResult<&'a str>, and
remaining(&self) -> usize. Unknown message fields go through kiwi_unknown_field; see
KiwiCodec.RustlerGenerator.UnknownFields.
Summary
Functions
Returns the record runtime, definition table, and constants for definitions.
Functions
@spec fragments([KiwiCodec.Schema.definition()], String.t()) :: [term()]
Returns the record runtime, definition table, and constants for definitions.