Now, 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 some breaking ones) to make it easier to use the derives and make it possible to extend them without having to break backwards compatibility again. There are five major changes that I would like to call out, but there are many more changes that are documented below:
There is 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 shouldn't really be any need to use thiserror anymore (if you are missing a feature/behaviour from thiserror please report an issue).
Traits that can return errors now return a type that implements Error when an error occurs instead of a &'static str.
When using use derive_more::SomeTrait the actual trait is also imported not just the derive macro. This is especially useful for Error and
Display
The docs are now rendered on docs.rs and are much better overall.
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)
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 some breaking ones) to make it easier to
use the derives and make it possible to extend them without having to break
backwards compatibility again. There are five major changes that I would like
to call out, but there are many more changes that are documented below:
There is 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 shouldn't really be any need to use
thiserror anymore (if you are missing a feature/behaviour from thiserror
please report an issue).
Traits that can return errors now return a type that implements Error
when an error occurs instead of a &'static str.
When using use derive_more::SomeTrait the actual trait is also imported
not just the derive macro. This is especially useful for Error and
Display
The docs are now rendered on docs.rs and are much better overall.
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
fields anymore. This feature was removed because it was considered useless in
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 major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the pointercrate group with 8 updates:
0.99.18
1.0.0
1.0.87
1.0.89
1.1.19
1.1.20
0.4.0
0.6.0
0.1.60
0.1.61
0.22.20
0.22.21
0.1.23
0.1.24
1.11.0
1.12.0
Updates
derive_more
from 0.99.18 to 1.0.0Release notes
Sourced from derive_more's releases.
... (truncated)
Changelog
Sourced from derive_more's changelog.
... (truncated)
Commits
d7f5b9e
chore: Release40201b1
Update release date to be correct88863ca
Update changelog wordingb713835
Improve error when not enabling any features330e425
Order features in Cargo.toml alphabetically84f2cbb
Update README and CHANGELOG in preparation of 1.0.0e8d60cf
Add compile_fail test for on purpose limited bounds (#393, #392)f665d18
Make anyhow reference a bit less strong6d632b2
Add release announcement (#390)e87ab13
Don't create git tags for derive_more-impl (#391)Updates
anyhow
from 1.0.87 to 1.0.89Release notes
Sourced from anyhow's releases.
Commits
9d3fb6d
Release 1.0.89830c399
Merge pull request #386 from dtolnay/unwindsafe8454be3
Ensure UnwindSafe even with "backtrace" feature enabled and old Rusta85e414
Add more autotraits tests139f266
Release 1.0.88aa3ab2b
Merge pull request #385 from dtolnay/docnostd44c3767
Update documentation on no-std error type conversionsUpdates
cc
from 1.1.19 to 1.1.20Release notes
Sourced from cc's releases.
Changelog
Sourced from cc's changelog.
Commits
92a5e28
chore: release (#1210)dab5d7a
Add buildcache as known Rust and C/C++ compiler wrapper (#1209)Updates
convert_case
from 0.4.0 to 0.6.0Commits
Updates
iana-time-zone
from 0.1.60 to 0.1.61Changelog
Sourced from iana-time-zone's changelog.
Commits
665d2c8
Bump version number to 0.1.61edac495
Merge pull request #139 from Kijewski/pr-dependabot-github-actions8e1d485
Let dependabot monitor ci dependencies in ci actions8c5197b
CI: use actions-setup-node@v4 and node 20 (#138)727bae1
CI: use actions/checkout@v4 (#137)1e74e53
Merge pull request #130 from sevenc-nanashi/fix/wasm32-unknown-emscripteneb6e1a8
Merge branch 'main' into fix/wasm32-unknown-emscripten6c2dedf
Merge pull request #134 from workingjubilee/dep-wasm-bindgen-0.2.89f1d7f73
ci: allow duplicatedcfg-if
crate (#135)225c4c0
Depend on wasm-bindgen 0.2.89 or higherUpdates
toml_edit
from 0.22.20 to 0.22.21Commits
e71fc23
chore: Release3dba021
docs: Update changelog8911cb1
Merge pull request #786 from epage/tablef8e909c
fix(edit): Allow creating Tables from Itemsfe18d4e
feat(edit): Allow more From's for Item1bfb7d7
Merge pull request #780 from toml-rs/renovate/embarkstudios-cargo-deny-action...54b96ca
chore(deps): Update EmbarkStudios/cargo-deny-action action to v20f70226
chore(deps): Update compatible (dev) (#776)ae2dfb4
Merge pull request #765 from epage/features-indexmap189697d
perf(parse): Remove extra key allocationUpdates
unicode-normalization
from 0.1.23 to 0.1.24Commits
c992130
Merge pull request #103 from Marcondiro/master0a95cae
Fix clippy99d6e46
Fix composition tableb7e343a
Use tinyvec 1.6.0 in msrv buildc8011eb
Update normalization_tests.rs to Unicode 16.0.0fdfe8e0
Update Unicode to version 16.0.0, bump to 0.1.2479687ca
Merge pull request #100 from unicode-rs/safety-comments71a54fa
Merge pull request #101 from unicode-rs/constructorsa97388a
Add safety comments154ebfc
Directly expose constructors for iterators rather than relying on hard-to-dis...Updates
unicode-segmentation
from 1.11.0 to 1.12.0Commits
9e3f88c
Publish 1.12187d8b8
Support Unicode 16.0.0 (#140)0f55f70
Fix unwrap panic in next_boundary() (#137)0fa7148
Merge pull request #138 from cardigan1008/issue-overflow164f787
fmtcbb8772
fix: arithmetic overflow2081c29
Merge pull request #136 from Jules-Bertholet/std-tablese96ec2e
Use stdlib alphabetic and numeric character tables592ce00
Merge pull request #134 from Jules-Bertholet/fixdce3a34
Add comments tohandle_incb_consonant
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