Repository navigation
Summary
This release makes binary writes 22–50% faster in benchmarks: writer symbol tables no longer allocate per symbol, and readers no longer build a text→SID map (#1065). For custom WriteAsIon implementations, IonError::application makes it possible to raise application-specific errors (#1073), and the experimental ValueWriter::Encoding makes it possible to encode a nested stream, such as a blob payload, in the same encoding as the enclosing writer (#1079). WriteConfig::with_max_depth sets a limit on how deeply containers can nest when writing; the default is 65,535 (#1074). Finally, experimental-serde can now deserialize internally tagged enums (#[serde(tag = "...")]) from both text and binary Ion (#1077).
What's Changed
- docs: add
AGENTS.mdwith contributor guidance for coding agents by @popematt in #1070 - fix(writer): defer field name until
StructWriter::writevalue is written by @popematt in #1072 - fix: make binary LazyElement sound without lifetime erasure by @popematt in #1058
- feat(writer): add
WriteConfig::with_max_depthby @popematt in #1074 - fix(reader): use
Rc::assume_initinIoBuffer::alloc_zeroedby @popematt in #1075 - Split symbol table by @JW-Huang in #1065
- feat(error): add
IonError::Applicationfor user-raised errors by @popematt in #1073 - feat(writer): expose
ValueWriter::Encodingby @popematt in #1079 - refactor(reader): drop untested
unsafefromExpandingReaderby @popematt in #1078 - fix(text): make text
LazyElementsound without lifetime erasure by @popematt in #1080 - fix(serde): deserialize internally tagged enums by @sgpthomas in #1077
- fix(serde): tunnel
DecimalandTimestampas byte payloads by @popematt in #1082 - chore: version bump to v1.2.0 by @popematt in #1083
New Contributors
- @sgpthomas made their first contribution in #1077
Full Changelog: v1.1.0...v1.2.0