NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1102 most downloaded on crates.io
Deriving with custom trait bounds
Last release 22 days ago
15 Sep 2026
Release timing varies
gaps range from 9 days to 1.4 years
Nearly every release is documented
notes for 10 of 10 stable releases
6 versions withdrawn
withdrawn after publishing
5 years old
19 releases · first in 2021
One column per quarter.
chore: Release derive-where version 1.7.0
chore: Release derive-where version 1.7.0
chore: Release derive-where version 1.6.1
chore: Release derive-where version 1.6.1
chore: Release derive-where version 1.6.0
chore: Release derive-where version 1.6.0
#[serde(...)] attributes are now allowed even when not deriving
De/Serialize with #[derive_where(...)].chore: Release derive-where version 1.5.0
chore: Release derive-where version 1.5.0
no_drop item-level option to ZeroizeOnDrop which does not implement
Drop but instead only asserts that every field implements ZeroizeOnDrop.Deserialize and Serialize trait via Serde's own
proc-macro.Eq for ZeroizeOnDrop.Note: Clone is excluded from blanket skipping and can only be used with selective skipping to avoid this being a breaking change.
Clone, calling Default::default() instead.
Note: Clone is excluded from blanket skipping and can only be used with
selective skipping to avoid this being a breaking change.Zeroize.Allow lifetime for<'a, ...> bounds in non-bounded generic parameters.
for<'a, ...> bounds in non-bounded generic parameters.Copy implementation for Clone and the Ord implementation for
PartialOrd when custom bounds are present.ZeroizeOnDrop.zeroize() with ZeroizeOnDrop on multiple
fields or variants.Apply #[automatically_derived] to all generated implementations.
#[automatically_derived] to all generated implementations.Use the Copy implementation for Clone only if no bounds are present.
Copy implementation for Clone only if no bounds are present.Use safe casting in PartialOrd and Ord implementations in more cases when possible.
PartialOrd and Ord implementations in more cases when
possible.Take representation into account when determining the discriminant type.
PartialOrd and Ord
implementations. Safe methods used with the safe crate feature don't use
recursive matches anymore, significantly improving the performance.Don't use Ord in PartialOrd implementations if using any bounds.
Ord in PartialOrd implementations if using any bounds.Avoid collisions between field names and trait method parameters.
PartialOrd implementations now use Ord if applicable.Correctly handle raw identifiers in named fields.
Debug output of structs that skip fields appears non_exhaustive now.
syn to v2.Debug output of structs that skip fields appears non_exhaustive now.crate attribute now takes a bare path instead of a path inside a string
literal.incomparable variant and item attribute for PartialEq and PartialOrd derives, yielding false on all comparisons but !=.
incomparable variant and item attribute for PartialEq and PartialOrd
derives, yielding false on all comparisons but !=.- No changes.
Breaking Change: Upgraded MSRV to Rust 1.57.
#[cfg(..)] on fields.Debug, EqHashOrd, Hash and Zeroize.Breaking Change: Changed to attribute instead of derive proc-macro.
ZeroizeOnDrop.Zeroize(drop).[unreleased]: https://github.com/ModProg/derive-where/compare/v1.7.0...HEAD [1.7.0]: https://github.com/ModProg/derive-where/compare/v1.6.1...v1.7.0 [
Your coding agent can read these notes before it upgrades. Set up the MCP server →