derail 0.3.0

An alternative to `core::error::Error`.
Documentation
# 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

<!--

Changelog sections must appear in the following order if they appear for a
particular version so that attention can be drawn to the important parts:

1. Security
2. Removed
3. Deprecated
4. Changed
5. Fixed
6. Added

Entries within each section should be sorted by merge order. If multiple changes
result in a single entry, base the ordering on the first change.

-->

## 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.

<!-- markdownlint-disable-file MD024 -->