# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog][keep-a-changelog], and this project
adheres to [Semantic Versioning][semver].
[keep-a-changelog]: https://keepachangelog.com/en/1.0.0/
[semver]: https://semver.org/spec/v2.0.0.html
## Unreleased
## v0.3.0
### Added
1. Add an implementation of `derail::Error` for `core::convert::Infallible`.
([!19](https://gitlab.computer.surgery/charles/derail/-/merge_requests/19))
### Removed
1. **BREAKING:** Remove the `report` module. It now lives in its own package,
which is called `derail-report`.
([!12](https://gitlab.computer.surgery/charles/derail/-/merge_requests/12))
2. **BREAKING:** Remove the proc-macro re-export and the `macros` feature. The
`derail-macros` package should now be depended on directly.
([!13](https://gitlab.computer.surgery/charles/derail/-/merge_requests/13))
### Changed
1. **BREAKING:** `derail::visitor::Visitor`, `derail::visitor::VisitorExt`,
and `derail::visitor::Context` were renamed to `derail::Visitor`,
`derail::VisitorExt`, and `derail::VisitContext` respectively. The
`derail::visitor` module no longer exists as a result.
([!15](https://gitlab.computer.surgery/charles/derail/-/merge_requests/15))
2. **BREAKING:** `derail::FromCore` was renamed to `derail::CoreCompat`.
([!16](https://gitlab.computer.surgery/charles/derail/-/merge_requests/16))
3. **BREAKING:** `derail::Error::visit` was renamed to `derail::Error::accept`.
([!17](https://gitlab.computer.surgery/charles/derail/-/merge_requests/17))
## v0.2.0
### Changed
1. Slightly modify the rules for `Error::visit` implementations with exactly
one child and skipping `self`. The previous version of these rules is still
valid.
([!3](https://gitlab.computer.surgery/charles/derail/-/merge_requests/3))
2. **BREAKING:** Replace `derail::visitor::Context`'s public fields with getter
functions.
([!3](https://gitlab.computer.surgery/charles/derail/-/merge_requests/3))
3. **BREAKING:** Require errors to be passed by reference in several functions.
([!3](https://gitlab.computer.surgery/charles/derail/-/merge_requests/3))
* `derail::report::multiline`
* `derail::report::oneline`
* `derail::visitor::VisitorExt::visit_children_of`
* `derail::visitor::VisitorExt::visit_many`
### Added
1. **BREAKING:** Add the `derail::Error::Details` associated type and the
`derail::Error::details` method to allow attaching arbitrary data to
`derail::Error` implementors and to allow accessing said data from them.
([!3](https://gitlab.computer.surgery/charles/derail/-/merge_requests/3))
2. Allow composing `derail::Error` implementors with differing concrete types
for `derail::Error::Details` via the following functions.
([!3](https://gitlab.computer.surgery/charles/derail/-/merge_requests/3))
* `derail::visitor::VisitorExt::visit_map_children_of`
* `derail::visitor::VisitorExt::visit_map_many`
## v0.1.1
### Changed
1. Improve accessibility of a link in the documentation.
([!6](https://gitlab.computer.surgery/charles/derail/-/merge_requests/6))
## v0.1.0
Initial release.