summaryrefslogtreecommitdiffstats
path: root/third_party/rust/derive_more/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/derive_more/CHANGELOG.md')
-rw-r--r--third_party/rust/derive_more/CHANGELOG.md313
1 files changed, 313 insertions, 0 deletions
diff --git a/third_party/rust/derive_more/CHANGELOG.md b/third_party/rust/derive_more/CHANGELOG.md
new file mode 100644
index 0000000000..2cf78f3077
--- /dev/null
+++ b/third_party/rust/derive_more/CHANGELOG.md
@@ -0,0 +1,313 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/)
+and this project adheres to [Semantic Versioning](http://semver.org/).
+
+
+## 1.0.0 - Unreleased
+
+### Breaking changes
+
+- The minimum supported Rust version (MSRV) is now Rust 1.65.
+- Add the `std` feature which should be disabled in `no_std` environments.
+- All Cargo features, except `std`, are now disabled by default. The `full`
+ feature can be used to get the old behavior of supporting all possible
+ derives.
+- The `TryFrom`, `Add`, `Sub`, `BitAnd`, `BitOr`, `BitXor`, `Not` and `Neg`
+ derives now return a dedicated error type instead of a `&'static str` on
+ error.
+- The `FromStr` derive now uses a dedicated `FromStrError` error type instead
+ of generating unique one each time.
+- The `Display` derive (and other `fmt`-like ones) now uses
+ `#[display("...", (<expr>),*)]` syntax instead of
+ `#[display(fmt = "...", ("<expr>"),*)]`, and `#[display(bound(<bound>))]`
+ instead of `#[display(bound = "<bound>")]`. So without the double quotes
+ around the expressions and bounds.
+- The `DebugCustom` derive is renamed to just `Debug` (gated now under a separate
+ `debug` feature), and its semantics were changed to be a superset of `std` variant
+ of `Debug`.
+- The `From` derive doesn't derive `From<()>` for enum variants without any
+ fields anymore. This feature was removed because it was considered useless in
+ practice.
+- The `From` derive now uses `#[from(<types>)]` instead of `#[from(types(<types>))]`
+ and ignores field type itself.
+- The `Into` derive now uses `#[into(<types>)]` instead of `#[into(types(<types>))]`
+ and ignores field type itself.
+- Importing a derive macro now also import its corresponding trait.
+
+### Added
+
+- Add support captured identifiers in `Display` derives. So now you can use:
+ `#[display(fmt = "Prefix: {field}")]` instead of needing to use
+ `#[display(fmt = "Prefix: {}", field)]`
+- Add `FromStr` derive support for enums that contain variants without fields.
+ If you pass the name of the variant to `from_str` it will create the matching
+ variant.
+- Add `#[unwrap(owned, ref, ref_mut)]` attribute for the `Unwrap` derive.
+ By using them, it is possible to derive implementations for the reference types as well.
+ ([#206](https://github.com/JelteF/derive_more/pull/206))
+- Add `TryUnwrap` derive similar to the `Unwrap` derive. This one returns a `Result` and does not panic.
+ ([#206](https://github.com/JelteF/derive_more/pull/206))
+
+### Changed
+
+- The `Constructor` and `IsVariant` derives now generate `const fn` functions.
+- The `Unwrap` and `IsVariant` derives now generate doc comments.
+- `#[automatically_derived]` is now emitted from all macro expansions. This
+ should prevent code style linters from attempting to modify the generated
+ code.
+- Upgrade to `syn` 2.0.
+- The `Error` derive now works in nightly `no_std` environments when enabling
+ `#![feature(error_in_core)]`.
+
+### Fixed
+
+- Use a deterministic `HashSet` in all derives, this is needed for rust analyzer
+ to work correctly.
+- Use `Provider` API for backtraces in `Error` derive.
+- Fix `Error` derive not working with `const` generics.
+- Support trait objects for source in Error, e.g.
+ `Box<dyn Error + Send + 'static>`
+
+## 0.99.10 - 2020-09-11
+
+### Added
+
+- `From` supports additional types for conversion: `#[from(types(u8, u16))]`.
+
+
+## 0.99.7 - 2020-05-16
+
+### Changed
+
+- When specifying specific features of the crate to only enable specific
+ derives, the `extra-traits` feature of `syn` is not always enabled
+ when those the specified features do not require it. This should speed up
+ compile time of `syn` when this feature is not needed.
+
+### Fixed
+
+- Fix generic derives for `MulAssign`
+
+## 0.99.6 - 2020-05-13
+
+### Changed
+
+- Make sure output of derives is deterministic, for better support in
+ rust-analyzer
+
+
+## 0.99.5 - 2020-03-28
+
+### Added
+
+- Support for deriving `Error`!!! (many thanks to @ffuugoo and @tyranron)
+
+### Fixed
+
+- Fix generic bounds for `Deref` and `DerefMut` with `forward`, i.e. put `Deref`
+ bound on whole type, so on `where Box<T>: Deref` instead of on `T: Deref`.
+ ([#107](https://github.com/JelteF/derive_more/issues/114))
+
+- The `tests` directory is now correctly included in the crate (requested by
+ Debian package maintainers)
+
+## 0.99.4 - 2020-03-28 [YANKED]
+
+Note: This version is yanked, because quickly after release it was found out
+tests did not run in CI.
+
+## 0.99.3 - 2020-02-19
+
+### Fixed
+
+- Fix generic bounds for `Deref` and `DerefMut` with no `forward`, i.e. no bounds
+ are necessary. ([#107](https://github.com/JelteF/derive_more/issues/114))
+
+
+## 0.99.2 - 2019-11-17
+
+### Fixed
+
+- Hotfix for a regression in allowed `Display` derives using `#` flag, such as
+ `{:#b}` ([#107](https://github.com/JelteF/derive_more/issues/107))
+
+## 0.99.1 - 2019-11-12
+
+### Fixed
+
+- Hotfix for a regression in allowed `From` derives
+ ([#105](https://github.com/JelteF/derive_more/issues/105))
+
+## 0.99.0 - 2019-11-11
+
+This release is a huge milestone for this library.
+Lot's of new derives are implemented and a ton of attributes are added for
+configuration purposes.
+These attributes will allow future releases to add features/options without
+breaking backwards compatibility.
+This is why the next release with breaking changes is planned to be 1.0.0.
+
+### Breaking changes
+- The minimum supported rust version (MSRV) is now Rust 1.36.
+- When using in a Rust 2015 crate, you should add `extern crate core` to your
+ code.
+- `no_std` feature is removed, the library now supports `no_std` without having
+ to configure any features.
+
+
+### Added
+
+- `Deref` derives now dereference to the type in the newtype. So if you have
+ `MyBox(Box<i32>)`, dereferencing it will result in a `Box<i32>` not an `i32`.
+ To get the old behaviour of forwarding the dereference you can add the
+ `#[deref(forward)]` attribute on the struct or field.
+- Derives for `AsRef`, `AsMut`, `Sum`, `Product`, `IntoIterator`.
+- Choosing the field of a struct for which to derive the newtype derive.
+- Ignoring variants of enums when deriving `From`, by using `#[from(ignore)]`.
+- Add `#[from(forward)]` attribute for `From` derives. This forwards the `from`
+ calls to the fields themselves. So if your field is an `i64` you can call from
+ on an `i32` and it will work.
+- Add `#[mul(forward)]` and `#[mul_assign(forward)]`, which implement `Mul` and
+ `MulAssign` with the semantics as if they were `Add`/`AddAssign`.
+- You can use features to cut down compile time of the crate by only compiling
+ the code needed for the derives that you use. (see Cargo.toml for the
+ features, by default they are all on)
+- Add `#[into(owned, ref, ref_mut)]` and `#[try_into(owned, ref, ref_mut)]`
+ attributes. These cause the `Into` and `TryInto` derives to also implement
+ derives that return references to the inner fields.
+- Allow `#[display(fmt="some shared display text for all enum variants {}")]`
+ attribute on enum.
+- Better bounds inference of `Display` trait.
+
+### Changed
+
+- Remove dependency on `regex` to cut down compile time.
+- Use `syn` 1.0
+
+## 0.15.0 - 2019-06-08
+
+### Fixed
+
+- Automatic detection of traits needed for `Display` format strings
+
+## 0.14.0 - 2019-02-02
+
+### Added
+
+- Added `no_std` support
+
+### Changed
+
+- Suppress `unused_variables` warnings in derives
+
+## 0.13.0 - 2018-10-19
+
+### Added
+
+- Extended Display-like derives to support custom formats
+
+### Changed
+
+- Updated to `syn` v0.15
+
+## 0.12.0 - 2018-09-19
+
+### Changed
+
+- Updated to `syn` v0.14, `quote` v0.6 and `proc-macro2` v0.4
+
+## 0.11.0 - 2018-05-12
+
+### Changed
+
+- Updated to latest version of `syn` and `quote`
+
+### Fixed
+
+- Changed some URLs in the docs so they were correct on crates.io and docs.rs
+- The `Result` type is now referenced in the derives using its absolute path
+ (`::std::result::Result`) to make sure that the derives don't accidentally use
+ another `Result` type that is in scope.
+
+## 0.10.0 - 2018-03-29
+
+### Added
+
+- Allow deriving of `TryInto`
+- Allow deriving of `Deref`
+- Allow deriving of `DerefMut`
+
+## 0.9.0 - 2018-03-18
+
+### Added
+
+- Allow deriving of `Display`, `Binary`, `Octal`, `LowerHex`, `UpperHex`, `LowerExp`, `UpperExp`, `Pointer`
+- Allow deriving of `Index`
+- Allow deriving of `IndexMut`
+
+### Fixed
+
+- Allow cross crate inlining of derived methods
+
+## 0.8.0 - 2018-03-10
+
+### Added
+
+- Allow deriving of `FromStr`
+
+### Changed
+
+- Updated to latest version of `syn` and `quote`
+
+## 0.7.1 - 2018-01-25
+
+### Fixed
+
+- Add `#[allow(missing_docs)]` to the Constructor definition
+
+## 0.7.0 - 2017-07-25
+
+### Changed
+
+- Changed code to work with newer version of the `syn` library.
+
+## 0.6.2 - 2017-04-23
+
+### Changed
+
+- Deriving `From`, `Into` and `Constructor` now works for empty structs.
+
+## 0.6.1 - 2017-03-08
+
+### Changed
+
+- The `new()` method that is created when deriving `Constructor` is now public.
+ This makes it a lot more useful.
+
+## 0.6.0 - 2017-02-20
+
+### Added
+
+- Derives for `Into`, `Constructor` and `MulAssign`-like
+
+### Changed
+
+- `From` is now derived for enum variants with multiple fields.
+
+### Fixed
+
+- Derivations now support generics.
+
+## 0.5.0 - 2017-02-02
+
+### Added
+
+- Lots of docs.
+- Derives for `Neg`-like and `AddAssign`-like.
+
+### Changed
+
+- `From` can now be derived for structs with multiple fields.