版本发布 8
### 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.
### Fixed - Apply `#[automatically_derived]` to all generated implementations.
### Fixed - Use the `Copy` implementation for `Clone` only if no bounds are present.
### 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.
### 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.
### Fixed - Don't use `Ord` in `PartialOrd` implementations if using any bounds.
### Fixed - Avoid collisions between field names and trait method parameters. ### Changed - `PartialOrd` implementations now use `Ord` if applicable.
### Fixed - Correctly handle raw identifiers in named fields.