# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
# 0.11.2 - 2026-03-17
### Added
- `stream::Any::reset`.
# 0.11.1 - 2026-03-16
### Added
- The `stream` module, containing `Any` which allows decoding of a CBOR item as it arrives.
# 0.15.1 (derive) - 2026-03-13
### Fixed
- Miscellaneous issues in macro expansion.
# 0.15.0 (derive) - 2026-03-13
### Fixed
- Revert changes in 0.14.0, and fix inconsistencies in the implementation. If an enum contains a single field overall,
it will not generate an error type, even if it has multiple variants.
# 0.14.0 (derive) - 2026-03-13
### Fixed
- Still emit an error type when enums have more than 1 variant and less than 2 fields.
# 0.13.0 (derive) - 2026-03-13
### Changed
- Don't generate error types for single field/variant types
### Fixed
- deriving traits on empty structs and enums.
# 0.12.0 (derive) - 2026-01-22
### Changed
- `naked` array types with a single field do not generate an error type.
- `naked` enums with unit variants do not generate an error type.
# 0.11.2 (derive) - 2026-01-21
### Fixed
- use full path for `Option` in macro.
# 0.11.0 - 2026-01-21
### Changed
- `string::Error` changed to `string::InvalidUtf8`.
- Better error messages when deriving `Decode`.
# 0.10.2 (lib) - 2026-01-18
### Fixed
- `MapVisitor` behavior with indefinite-length maps.
# 0.10.1 (lib) - 2026-01-16
### Added
- `PartialOrd`, `Ord`, and `Hash` implementations on error types.
# 0.10.0 - 2026-01-13
### Changed
- things named `Inner` now have more descriptive names.
# 0.9.0 - 2026-01-13
### Added
- Various `From` impls for error types to convert from the underlying errors.
### Changed
- `primitive::Error` variants don't needlessly store their unit content.
- `collections` module renamed to `container`.
- `fixed` module renamed to `bounded`.
# 0.8.0 - 2026-01-12
### Added
- `#[cbor(recursive)]` attribute to generate valid error types for recursive types.
### Removed
- `std::str::Utf8Error` from the `Utf8` variant of `string::Error`.
# 0.7.1 - 2026-01-11
### Added
- `From<Tagged<T, N>> for Option<T>` and `From<Encoded<T>> for Option<T>` implementations.
### Fixed
- Type inference issue when using `naked` and `with` together in `decode`.
# 0.7.0 - 2026-01-11
### Changed
- `tag_only` has be replaced by the more powerful `naked` attribute.
# 0.6.0 - 2026-01-08
### Changed
- `fixed::Error` now follows how `tag::Error` and `nonzero::Error` are defined.
# 0.5.4 - 2026-01-04
### Added
- `&[u8; N]` implements `Decode`.
# 0.5.3 - 2026-01-03
### Fixed
- `Any` decoding bug with tags.
# 0.5.2 - 2026-01-03
### Fixed
- More permissive bounds on `Any`'s lifetime.
# 0.5.1 - 2025-12-31
### Added
- `map` methods to error types.
### Changed
- Errors generated by `derive(Decode)` are now `pub`.
# 0.5.0 - 2025-12-30
### Changed
- `to_vec` now takes `&T` instead of `T`.
# 0.4.1 - 2025-12-28
### Added
- `Any` type.
# 0.4.0 - 2025-12-28
### Changed
- `{encode,len}_with` only support types that implement `From<&T> for &<Self>` for the field type `T`.
# 0.3.0 - 2025-12-23
### Added
- `Encoded` wrapper type.
- `into` function on `tag::Tagged`.
### Changed
- Semantics of `with` in macro. Can now support `From<&T>` implementations, and `into` methods.
### Removed
- `tag::Dynamic`
# 0.2.3 - 2025-12-22
### Fixed
- Correctly handle indefinite-length structures in `ArrayVisitor`, `MapVisitor`, `BytesIter`, and `StrIter`.
# 0.2.2 - 2025-12-22
### Added
- Implement `map` encoding for sequential types such as `Vec<(K, V)>`.
# 0.2.1 - 2025-12-21
### Added
- `definite` method on `ArrayVisitor` and `MapVisitor` that returns whether the collection is definite-length.
# 0.2.0 - 2025-12-21
### Added
- `tag::Dynamic`: Allows for dynamically tagged values.
- `tinycbor-derive` now locks the value of `tinycbor` to use.
### Changed
- Renamed some variants of `collections::Error` for clarity and generalization.