Skip to content

v0.7.0

Latest

Choose a tag to compare

@dannote dannote released this 26 Oct 15:35
9cb1744

Removed

  • The :decoder_sources option. Generated helpers are typed against the
    reference Decoder, whose method signatures a crate's own keeps.
  • The :sparse_messages option. Sparse message decoders always use one table
    of their fields, shared with skip decoders when both are generated, which is
    what :descriptor did; :match generated 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, and KiwiDecodeFn replaces
    KiwiSparseDecodeFn and KiwiFullDecodeFn. The skip helpers are one module,
    KiwiCodec.RustlerGenerator.Skip.Helpers, which RustQ code calling them names
    instead of Skip.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_definitions and kiwi_records constants as before, which
    the generator used to write out separately, one table field per line.
    Figma's schema generates about 630 KB less Rust.