v0.1007.0
Pre-release
Pre-release
mumbleskates
released this
01 May 22:03
·
86 commits
to bilrost
since this release
v0.1007.0
Breaking changes
- Tuple typed structs (with anonymous fields accessed like
value.0
) now start
their field numbering from zero by default, matching the names of the fields. - Renamed the
.reader()
method onReverseBuffer
to.buf_reader()
so it no
longer conflicts with thebytes::Buf
method.
New features
- Added support for encoding
usize
andisize
pointer-sized integers. They
will still have different supported maximums on platforms with different sized
values, but this still has completely reasonable failure modes. - Added support for deriving
Message
forenum
types, which is implemented in
terms ofOneof
. The message implementations encode and decode exactly like a
message which contains only that oneof; see the readme for more details. - Changed the
Value
type inbilrost-types
to be a message-via-oneof in this
way, making it much nicer to use without changing its meaning. - Added a
.slices()
method toReverseBuffer
andReverseBufferReader
which
iterates its slices, useful for sending towrite_vectored
.
Fixes
- Fixed some incorrect tests, including coverage of third-party inline vecs and
packed/unpacked fixed-size arrays.
Cleanups
- Cleaned up and re-added fuzzers! Fuzzers are available via both
libfuzzer
andafl
; seeFUZZING.md
for usage details. These fuzzers
would have caught the bug fixed in 0.1006.1 :) - Deduplicated and somewhat improved codegen for oneofs. All four kinds of oneof
decoder function are now generated by the same code, which is a huge
improvement over four independent generators. - Added tests for detailed errors attribution of decoding errors to the specific
field that caused the problem.