Changelog¶
All notable changes to dash-types and
dash-types-marker will be documented in this file.
The format is based on Keep a Changelog, and this crate adheres to Semantic Versioning.
Unreleased¶
Added¶
- Implementation of
LowerHex,UpperHex,FromStr,From<&[u8; N]>andTryFrom<&[u8]>for{derive,make}_bytes!. ParseHexErroris moved fromdash-num, supersedingdash_num::ParseHexError.serialize::hex::serialize_asandserialize::hex::deserialize_as, to permit caller-defined handling of human-readable encoding while sharing common machine-readable encoding.
Changed¶
{derive,make}_bytes!-defined types serialize as their raw storage bytes for machine-readable formats. JSON and other human-readable formats retain hex in storage order forfwdand in reverse storage order forrev.derive_bytes!emitsFrom<[u8; N]>in place ofimpl_bytes!, andmake_sbytes!emits the implementation itself. Callers ofimpl_bytes!withoutderive_bytes!must now write the conversion manually.- As a result, both
make_bytes!andmake_sbytes!carry it withnocodectag and without thecodecfeature and callers that wrote the conversion manually for those configurations must drop it.
- As a result, both
- The
zeroizeexport is moved from the crate root to__deps. Callers must switch todash_types::__deps::zeroize. - Types using
derive_bytes!that implementedFrom<&[u8; N]>,TryFrom<&[u8]>,FromStr,LowerHexorUpperHexmanually must drop those implementations, asderive_bytes!now emits them. serialize::hexwrites raw bytes for machine-readable formats instead of emitting a hex-encoded string.serialize::hex::deserializereturns anyTbuilt from a byte slice instead ofVec<u8>. Callers that relied onVec<u8>as the fixed return type must now mention it explicitly.serialize::str_u64writes a nativeu64to machine-readable formats.str_u64is a workaround for number-precision limitations in JSON and is now contained only for human-readable formats.
Removed¶
- The
codec::Checkableandcodec::Hashablecompatibility aliases in favour of exports from the crate root.
Fixed¶
serialize::utf8_lossy's serializer and deserializer arms were not in sync, writing valid UTF-8 as a string for machine-readable formats but expecting byte buffers when reading, failing round trips. This has since been resolved.
0.1.0-beta - 2026-09-14¶
- Initial release.