# 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.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Added
### Fixed
### Removed
### Changed
---
## 0.5.0 - 2023-03-12
### Added
- Add `msgpack-value` crate
- Implement `proptest::arbitrary::Arbitrary` for `msgpack_value::Value` and others
- Implement `Serialize` and `Deserialize` for `Box`, `Rc`, and `Arc`
### Changed
- Add more tests
## 0.4.2 - 2022-01-25
### Changed
- Bump Rust edition to 2021 (no user-facing changes)
## 0.4.1 - 2021-07-29
### Added
- Add `value::Empty`
- Support tuple structs (with more than one field)
## 0.4.0 - 2021-07-19
### Added
- Report errors when there are attributes in an invalid position
- (experimental) Add `schema` attribute
- Support `#[flatten]`
### Removed
- Remove `Serialize` and `Deserialize` impls for `Option<T>`
## 0.3.1 - 2021-06-21
### Fixed
- Fix Cargo dependency bound.
## 0.3.0 - 2021-06-17
### Added
- Add `Ext` type.
- Support untagged structs.
### Removed
- Hide `msgpack` macro.
- All inherent methods of `Token`.
### Changed
- Change the types of `serialize` and `deserialize`.
- `Serialize` never throws an error.
- `DeserializeError` no longer contains detailed information.
- `Deserializer` and `Serializer` are now structs.
## 0.2.1 - 2021-06-15
### Added
- Restore `DeserializeError::InvalidValue` as a unit variant.
## 0.2.0 - 2021-06-15
### Removed
- Remove `DeserializeError::InvalidValue` to allow the `DeserializeError` type to be `Send` and `Sync`.
## 0.1.6 - 2021-06-12
### Added
- Add `msgpack` macro.
### Removed
- Remove `BinarySerializer` and `BinaryDeserializer`. Use `serialize` and `deserialize` instead.
## 0.1.5 - 2021-06-12
### Fixed
- Fix serialization of 0-length map value
- Fix deserialization of FixExt8 and FixExt16
## 0.1.4 - 2021-06-12
### Fixed
- Fix doc test failure.
## 0.1.3 - 2021-06-12
This release mainly includes doc improvements and typo fixes.
### Removed
- `Value`
- `TryFromValueError`
- `value::{Serializer, Deserializer, serialize, deserialize}`
### Changed
- Move `Any` to `value::Any`
- Move `Nil` to `value::Nil`
## 0.1.2 - 2021-06-10
### Added
- Add a blanket implementation `impl<T: Serialize> Serialize for &T`
## 0.1.1 - 2021-06-08
Initial version