More than 8 years after the first commit and almost 5 years after the 0.99.0
release, derive_more has finally reached its 1.0.0 release. This release
contains a lot of changes (including breaking ones) to make it easier to use
the derives and make it possible to extend them without having to breaking
backwards compatibility again. There are three major changes that I would like
to call out, but there are many more changes that are documented below:
A new Debug derive that can be used to easily customize Debug formatting.
A greatly improved Display derive, which allows you to do anything that
thiserror provides, but it works for any type not just errors. And by
combining the Display derive with the Error and From derives, there
isn't really any need to use thiserror anymore.
Traits that can return errors now return a type that implements Error
when an error occurs instead of a &'static str.
Breaking changes
The minimum supported Rust version (MSRV) is now Rust 1.75.
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 Debug and Display derives (and other fmt-like ones) now transparently
delegate to the inner type when #[display("...", (<expr>),*)] attribute is
trivially substitutable with a transparent call.
(#322)
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
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on derive_more to permit the latest version.
Release notes
Sourced from derive_more's releases.
Changelog
Sourced from derive_more's changelog.
... (truncated)
Commits
5786760
chore: Release470c5c0
Bump up MSRV to 1.75 (#389)7179498
Fix incorrectfmt::Pointer
implementations (#381, #328)efbd8ed
Only putDisplay
-like bounds on type variables (#387, #363)8a172f2
Support_variant
in outer level enum formatting for Display (#377, #142, #239)162535e
Only put Debug-like bounds on type variables (#371, #363)af823ea
Remove unused imports for no_std tests (#385)647e3a5
FixTryInto
derive for generics (#384)c7a3111
Update documentation about Error in no_std (#382)3ec4c92
Re-enable commented out test (#379)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show