KiwiCodec.RustlerGenerator.Records (kiwi_codec v0.5.0)

Copy Markdown View Source

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::REMOVED

Decoding uses the Decoder methods KiwiCodec.RustlerGenerator.Decoder lists for records. 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

fragments(definitions, module_prefix)

@spec fragments([KiwiCodec.Schema.definition()], String.t()) :: [term()]

Returns the record runtime, definition table, and constants for definitions.