Repository navigation
Removed
- The
:decoder_sourcesoption. Generated helpers are typed against the
referenceDecoder, whose method signatures a crate's own keeps. - The
:sparse_messagesoption. Sparse message decoders always use one table
of their fields, shared with skip decoders when both are generated, which is
what:descriptordid;:matchgenerated the same Rust another way. - Unknown options raise instead of being ignored.
Changed
-
The generator's helper Rust comes from ordinary RustQ modules, included whole
per feature, instead of modules built at generation time and lists of the
functions to take from them. Full and sparse decoders share their primitive
readers, enum decoding, and field reading, andKiwiDecodeFnreplaces
KiwiSparseDecodeFnandKiwiFullDecodeFn. The skip helpers are one module,
KiwiCodec.RustlerGenerator.Skip.Helpers, which RustQ code calling them names
instead ofSkip.ValueHelpers. This needs RustQ 1.0.0-rc.19. -
The record feature writes each definition once, as a row of one
kiwi_records!call: its fields and enum values one per line. The macro,
in the record runtime, expands to the definition table and the
kiwi_record_definitionsandkiwi_recordsconstants as before, which
the generator used to write out separately, one table field per line.
Figma's schema generates about 630 KB less Rust.