derive-where
Deriving with custom trait bounds
1.6.1
60M downloads/mo
#1109 most downloaded on crates.io
ModProg/derive-where
What this package is like to depend on
Last release 5 months ago
13 Mar 2026
Ships unpredictably
gaps range from 9 days to 1.4 years
Nearly every release is documented
notes for 9 of 9 stable releases
6 versions withdrawn
withdrawn after publishing
5 years old
18 releases · first in 2021
1 release in the last 12 months
see the full history below
Release timeline
18 releases · Dec 2021 to Mar 2026
2022
2023
2024
2025
2026
Releases
latest 18-
1.6.113 Mar 2026 -
1.6.006 Aug 2025Release notes
Open source →Changed
#[serde(...)]attributes are now allowed even when not derivingDe/Serializewith#[derive_where(...)].
-
1.5.016 Jun 2025Release notes
Open source →Added
no_dropitem-level option toZeroizeOnDropwhich does not implementDropbut instead only asserts that every field implementsZeroizeOnDrop.- Support deriving Serde's
DeserializeandSerializetrait via Serde's own proc-macro.
Changed
- Error messages now point to crate features instead of reporting traits as unsupported.
Changed
- Remove unnecessary validation of the default discriminant type for enums.
Fixed
- Stop depending on unstable APIs for
EqforZeroizeOnDrop.
-
1.4.001 May 2025Release notes
Open source →Added
- Allow skipping fields for
Clone, callingDefault::default()instead. Note:Cloneis excluded from blanket skipping and can only be used with selective skipping to avoid this being a breaking change.
Fixed
- Support skipping only some variants with
Zeroize.
- Allow skipping fields for
-
1.3.021 Apr 2025Release notes
Open source →Added
- Allow lifetime
for<'a, ...>bounds in non-bounded generic parameters.
Changed
- Use the
Copyimplementation forCloneand theOrdimplementation forPartialOrdwhen custom bounds are present.
Fixed
- Support skipping only some variants with
ZeroizeOnDrop. - Only generate single call to
zeroize()withZeroizeOnDropon multiple fields or variants.
- Allow lifetime
-
1.2.714 Dec 2023 -
1.2.604 Dec 2023Release notes
Open source →Fixed
- Use the
Copyimplementation forCloneonly if no bounds are present.
- Use the
-
1.2.503 Sep 2023Release notes
Open source →Changed
- Use safe casting in
PartialOrdandOrdimplementations in more cases when possible. - Avoid unnecessarily validating the default discriminant type in some cases.
- Apply default enum discriminant type validation to all representations and make it cross-edition safe.
- Use safe casting in
-
1.2.401 Sep 2023Release notes
Open source →Fixed
- Take representation into account when determining the discriminant type.
Changed
- Use stable methods to retrieve the discriminant in
PartialOrdandOrdimplementations. Safe methods used with thesafecrate feature don't use recursive matches anymore, significantly improving the performance.
-
1.2.323 Aug 2023 withdrawn -
1.2.222 Aug 2023 withdrawnRelease notes
Open source →Fixed
- Avoid collisions between field names and trait method parameters.
Changed
PartialOrdimplementations now useOrdif applicable.
-
1.2.114 Apr 2023 withdrawn -
1.2.019 Mar 2023 withdrawnRelease notes
Open source →Changed
- Updated
synto v2. Debugoutput of structs that skip fields appearsnon_exhaustivenow.
Deprecated
- The
crateattribute now takes a bare path instead of a path inside a string literal.
- Updated
-
1.1.005 Feb 2023 withdrawnRelease notes
Open source →Added
incomparablevariant and item attribute forPartialEqandPartialOrdderives, yielding false on all comparisons but!=.
-
1.0.016 Jul 2022 withdrawn -
1.0.0-rc.321 Mar 2022 pre-releaseRelease notes
Open source →Fixed
- Support attribute evaluation, e.g.
#[cfg(..)]on fields.
Changed
- Breaking Change: Upgraded MSRV to Rust 1.57.
- Upgraded to Rust edition 2021.
- Breaking Change: To prevent breaking invariants, skip groups were
introduced:
Debug,EqHashOrd,HashandZeroize.
- Support attribute evaluation, e.g.
-
1.0.0-rc.225 Jan 2022 pre-releaseRelease notes
Open source →Added
- Support
ZeroizeOnDrop.
Changed
- Breaking Change: Changed to attribute instead of derive proc-macro.
Removed
- Breaking Change: Remove support for
Zeroize(drop).
- Support
-
1.0.0-rc.108 Dec 2021 pre-release