PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 18
  1. 1.6.1 13 Mar 2026
    Release notes

    chore: Release derive-where version 1.6.1

    Open source →
    Release notes

    Fixed

    • Fix compilation when Clone + Copy or PartialEq + Eq where used with automatic bounds (#137 by spirali).
    Open source →
  2. 1.6.0 06 Aug 2025
    Release notes

    chore: Release derive-where version 1.6.0

    Open source →
    Release notes

    Changed

    • #[serde(...)] attributes are now allowed even when not deriving De/Serialize with #[derive_where(...)].
    Open source →
  3. 1.5.0 16 Jun 2025
    Release notes

    chore: Release derive-where version 1.5.0

    Open source →
    Release notes

    Added

    • no_drop item-level option to ZeroizeOnDrop which does not implement Drop but instead only asserts that every field implements ZeroizeOnDrop.
    • Support deriving Serde's Deserialize and Serialize trait 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 Eq for ZeroizeOnDrop.
    Open source →
  4. 1.4.0 01 May 2025
    Release notes

    Added

    • Allow skipping fields for 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.

    Fixed

    • Support skipping only some variants with Zeroize.
    Open source →
  5. 1.3.0 21 Apr 2025
    Release notes

    Added

    • Allow lifetime for<'a, ...> bounds in non-bounded generic parameters.

    Changed

    • Use the Copy implementation for Clone and the Ord implementation for PartialOrd when custom bounds are present.

    Fixed

    • Support skipping only some variants with ZeroizeOnDrop.
    • Only generate single call to zeroize() with ZeroizeOnDrop on multiple fields or variants.
    Open source →
  6. 1.2.7 14 Dec 2023
    Release notes

    Fixed

    • Apply #[automatically_derived] to all generated implementations.
    Open source →
  7. 1.2.6 04 Dec 2023
    Release notes

    Fixed

    • Use the Copy implementation for Clone only if no bounds are present.
    Open source →
  8. 1.2.5 03 Sep 2023
    Release notes

    Changed

    • Use safe casting in PartialOrd and Ord implementations 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.
    Open source →
  9. 1.2.4 01 Sep 2023
    Release notes

    Fixed

    • Take representation into account when determining the discriminant type.

    Changed

    • Use stable methods to retrieve the discriminant in PartialOrd and Ord implementations. Safe methods used with the safe crate feature don't use recursive matches anymore, significantly improving the performance.
    Open source →
  10. 1.2.3 23 Aug 2023 withdrawn
    Release notes

    Fixed

    • Don't use Ord in PartialOrd implementations if using any bounds.
    Open source →
  11. 1.2.2 22 Aug 2023 withdrawn
    Release notes

    Fixed

    • Avoid collisions between field names and trait method parameters.

    Changed

    • PartialOrd implementations now use Ord if applicable.
    Open source →
  12. 1.2.1 14 Apr 2023 withdrawn
    Release notes

    Fixed

    • Correctly handle raw identifiers in named fields.
    Open source →
  13. 1.2.0 19 Mar 2023 withdrawn
    Release notes

    Changed

    • Updated syn to v2.
    • Debug output of structs that skip fields appears non_exhaustive now.

    Deprecated

    • The crate attribute now takes a bare path instead of a path inside a string literal.
    Open source →
  14. 1.1.0 05 Feb 2023 withdrawn
    Release notes

    Added

    • incomparable variant and item attribute for PartialEq and PartialOrd derives, yielding false on all comparisons but !=.
    Open source →
  15. 1.0.0 16 Jul 2022 withdrawn
    Release notes
    • No changes.
    Open source →
  16. 1.0.0-rc.3 21 Mar 2022 pre-release
    Release notes

    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, Hash and Zeroize.
    Open source →
  17. 1.0.0-rc.2 25 Jan 2022 pre-release
    Release notes

    Added

    Changed

    • Breaking Change: Changed to attribute instead of derive proc-macro.

    Removed

    • Breaking Change: Remove support for Zeroize(drop).
    Open source →
  18. 1.0.0-rc.1 08 Dec 2021 pre-release
    Release notes

    Added

    • Initial release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive