mirror of
https://github.com/Lokathor/bytemuck.git
synced 2024-11-24 07:42:24 +00:00
More TransparentWrapper
impls (core::cmp::Reverse
and core::num::Saturating
) (#269)
* impl<T> TransparentWrapper<T> for core::cmp::Reverse<T> * impl<T> TransparentWrapper<T> for core::num::Saturating<T>, with a new feature for non-base-MSRV stdlib TransparentWrapper impls. * Restrict TransparentWrapper<T> for Reverse<T> to cfg(feature = "transparentwrapper_extra"). * nightly_docs for transparent_wrapper_extra --------- Co-authored-by: Lokathor <zefria@gmail.com>
This commit is contained in:
parent
79a15d0a3f
commit
af8d110201
@ -40,6 +40,11 @@ aarch64_simd = [] # MSRV 1.59.0: support aarch64 simd types
|
||||
|
||||
must_cast = [] # MSRV 1.64.0: support the `must` module.
|
||||
|
||||
# Adds `TransparentWrapper` impls for stdlib types newer than bytemuck's base MSRV.
|
||||
# Current MSRV 1.74.0: `core::num::Saturating`.
|
||||
# MSRV may increase if impls are added for newer types.
|
||||
transparentwrapper_extra = []
|
||||
|
||||
const_zeroed = [] # MSRV 1.75.0: support const `zeroed()`
|
||||
|
||||
# Do not use if you can avoid it, because this is **unsound**!!!!
|
||||
|
@ -303,3 +303,20 @@ pub unsafe trait TransparentWrapper<Inner: ?Sized> {
|
||||
}
|
||||
|
||||
unsafe impl<T> TransparentWrapper<T> for core::num::Wrapping<T> {}
|
||||
#[cfg(feature = "transparentwrapper_extra")]
|
||||
#[cfg_attr(
|
||||
feature = "nightly_docs",
|
||||
doc(cfg(feature = "transparentwrapper_extra"))
|
||||
)]
|
||||
unsafe impl<T> TransparentWrapper<T> for core::num::Saturating<T> {}
|
||||
|
||||
// Note that `Reverse` existed since Rust 1.19.0, but was only made `#[repr(transparent)]`
|
||||
// in Rust 1.52.0 (PR: https://github.com/rust-lang/rust/pull/81879), so we have it under
|
||||
// the same feature as `Saturating`, which was stabilized in Rust 1.74.0, so that this
|
||||
// impl cannot be used on a version before 1.52.0 where it would be unsound.
|
||||
#[cfg(feature = "transparentwrapper_extra")]
|
||||
#[cfg_attr(
|
||||
feature = "nightly_docs",
|
||||
doc(cfg(feature = "transparentwrapper_extra"))
|
||||
)]
|
||||
unsafe impl<T> TransparentWrapper<T> for core::cmp::Reverse<T> {}
|
||||
|
Loading…
Reference in New Issue
Block a user