All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.6.1 - 2026-03-13
- Fix compilation when
Clone + CopyorPartialEq + Eqwhere used with automatic bounds (#137 by spirali).
1.6.0 - 2025-08-06
#[serde(...)]attributes are now allowed even when not derivingDe/Serializewith#[derive_where(...)].
1.5.0 - 2025-06-08
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.
- Error messages now point to crate features instead of reporting traits as unsupported.
- Remove unnecessary validation of the default discriminant type for enums.
- Stop depending on unstable APIs for
EqforZeroizeOnDrop.
1.4.0 - 2025-05-01
- 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.
- Support skipping only some variants with
Zeroize.
1.3.0 - 2025-04-21
- Allow lifetime
for<'a, ...>bounds in non-bounded generic parameters.
- Use the
Copyimplementation forCloneand theOrdimplementation forPartialOrdwhen custom bounds are present.
- Support skipping only some variants with
ZeroizeOnDrop. - Only generate single call to
zeroize()withZeroizeOnDropon multiple fields or variants.
1.2.7 - 2023-12-14
- Apply
#[automatically_derived]to all generated implementations.
1.2.6 - 2023-12-04
- Use the
Copyimplementation forCloneonly if no bounds are present.
1.2.5 - 2023-09-03
- 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.
1.2.4 - 2023-09-01
- Take representation into account when determining the discriminant type.
- 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.3 - 2023-08-23 [YANKED]
- Don't use
OrdinPartialOrdimplementations if using any bounds.
1.2.2 - 2023-08-22 [YANKED]
- Avoid collisions between field names and trait method parameters.
PartialOrdimplementations now useOrdif applicable.
1.2.1 - 2023-04-14 [YANKED]
- Correctly handle raw identifiers in named fields.
1.2.0 - 2023-03-19 [YANKED]
- Updated
synto v2. Debugoutput of structs that skip fields appearsnon_exhaustivenow.
- The
crateattribute now takes a bare path instead of a path inside a string literal.
1.1.0 - 2023-02-06 [YANKED]
incomparablevariant and item attribute forPartialEqandPartialOrdderives, yielding false on all comparisons but!=.
1.0.0 - 2022-07-16 [YANKED]
- No changes.
1.0.0-rc.3 - 2022-03-21
- Support attribute evaluation, e.g.
#[cfg(..)]on fields.
- 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.
1.0.0-rc.2 - 2022-01-25
- Support
ZeroizeOnDrop.
- Breaking Change: Changed to attribute instead of derive proc-macro.
- Breaking Change: Remove support for
Zeroize(drop).
1.0.0-rc.1 - 2021-12-08
- Initial release.