0.12.1 - 2021-05-25
0.12.0 - 2021-04-13
const_generics
feature enabled by default
- Add optional
const_generics
feature (@soruh) (#187)- This allows for reading/writing arrays with >32 elements when enabled
- DekuRead+DekuWrite implementations for Cow (@abungay) (#186)
- DekuRead+DekuWrite implementations for HashMap (@abungay) (#199)
- DekuRead+DekuWrite implementations for HashSet (@abungay) (#199)
- DekuWrite implementations for &T (@abungay) (#199)
- DekuRead+DekuWrite implementations for tuple (@abungay) (#198)
- Updated dependencies
- Updated wasm example
- Fix: Parenthesize pad/update attributes (@wcampbell0x2a) (#195)
- Fixed failing code coverage (@abungay) (#200)
- Update DekuRead documentation (@caass) (fcfdc24/#196)
- Updated hexlit dependency (@inspier) (#189)
- Refactoring and code improvements (@wcampbell0x2a)
0.11.0 - 2020-02-25
- Removed
bitvec
fromdeku::prelude
(#181)- This will break custom
reader
andwriter
function definitions bitvec
is re-exported via:deku::bitvec::
(this containsbitvec::prelude::*
)
- This will break custom
- Added
DekuEnumExt
to provide extra utility functions to enums. (#176)- This trait is implemented on enums derived with
#[derive(DekuRead)]
- This trait currently contains 1 function:
deku_id()
deku_id
can be called on an enum variant to get the dekuid
of the variant
- This trait is implemented on enums derived with
- Added
Incomplete(NeedSize)
variant onDekuError
(#177) - Added
CODE_OF_CONDUCT.md
- Code improvements (@wcampbell0x2a)
0.10.1 - 2020-02-25
- Update bitvec dependency to fix build failures
0.10.0 - 2020-01-09
- Enum's which don't specify an
id
attribute now default to their discriminant value instead of being treated as a catch-all (#139) - Removed
BitSize
in favor of a new enumSize
with two variants,Bits
andBytes
(#138) - Added namespacing to internal variables.
deku::
is used to access internal variables in token fields. (#150) For example,reader = "my_reader(deku::rest, deku::bit_offset)"
orwriter = "my_writer(deku::output)"
- Introduced a lifetime to
DekuRead
in support of zero-copy reading (#158)
- Zero-copy reading on &[u8] (#158)
- Padding related attributes:
pad_bits_before
,pad_bytes_before
,pad_bits_after
,pad_bytes_after
(#163) - Assertion related attributes:
assert
,assert_eq
(#164) - Ability to use more types in enum's
type
attribute (#162) - Ability to use LitByteStr in enum's
id
attribute, for exampleid = b"0x01"
(#162) - Access to read offset via bit_offset and byte_offset internal variables. (#149)
These are accessed via
deku::
namespace,deku::bit_offset
anddeku::byte_offset
. (#150) #[deku(temp)]
attribute, enabled viadeku_derive
proc-macro attribute. (#136) This allows reading/use of a field without it being stored in the container.- DekuRead+DekuWrite implementations for CString (#144)
- DekuRead+DekuWrite implementations for NonZeroT types (#140)
- DekuRead+DekuWrite implementations for bool (#161)
- DekuRead+DekuWrite implementations for () (#159)
- DekuRead+DekuWrite implementations for Box and Box<[T]> (#160)
- Internal code/test refactoring
- Code improvements (@myrrlyn, @wcampbell0x2a, @inspier)
0.9.3 - 2020-12-14
- Patch release to fix semver break in darling, this has since been fixed
- Patch release to fix semver break in darling, this has since been fixed
0.9.1 - 2020-10-31
- Changed minimum bitvec version to 0.19.4 to have desired
offset_from
functionality (ferrilab/bitvec#86). This was missed in 0.9.0 release. - Code improvements (@wcampbell0x2a)
0.9.0 - 2020-10-30
- Added
magic
attribute, this allows the ability to specify a set of bytes which must be present at the start of the data (@samuelsleight) - Added
until
attribute, this allows the ability to read until a given predicate (@samuelsleight) - Added
bits_read
andbytes_read
container attributes, this allows the ability to specify an amount of bits/bytes to read inside a Vec (@samuelsleight) - Improved documentation
- Refactored test cases
- Code improvements (@wcampbell0x2a)
0.8.0 - 2020-09-29
write
now takes a&mut BitVec
instead of returning a BitVec, this optimization speeds up serialization (@agausmann)
The following items have been renamed: (@wcampbell0x2a)
- Renamed
id_type
in favor oftype
- Renamed
id_bits
in favor ofbits
- Renamed
id_bytes
in favor ofbytes
Internal:
- Updated criterion to latest
- Using tarpaulin for code coverage now
- Swapped hex! macro (@inspier)
- Code improvements (@wcampbell0x2a)
0.7.2 - 2020-09-02
- Added
ctx_default
attribute, this allows the ability to specify defaults to types accepting actx
if none are provided - Updated documentation regarding the concept of context and how it applies to some attributes
- Added validation to
id
attribute endian
attribute now accepts an expression (still acceptsbig
orlittle
)- Updated bitvec dependency
0.7.1 - 2020-07-31
- Added
id
attribute to top-level enums which allows to specify the enum id, for example a value coming via a context variable
0.7.0 - 2020-07-28
- Added
cond
attribute which allows for conditional parsing or skipping of a field - Added
id_pat
attribute which allows pattern matching for enum variants
Community:
- Added
ctx
attribute which adds the ability to pass context to child parsers from the parent (@constfold) - Internal refactoring of
endian
,bits
andcount
attributes, they are now sugar around thectx
(@constfold) - Renamed
to_bitvec
toto_bits
(@wcampbell0x2a)
0.6.1 - 2020-07-06
- Enum variant specified without an
id
attribute is now considered the catch-all
- Added
DekuContainerRead
andDekuContainerWrite
to exposefrom_bytes
,to_bytes
andto_bitvec
- Added
release.toml
- Added
CHANGELOG.md
to track changes