pub unsafe trait ZeroablePrimitive:
Sized
+ Copy
+ Sealed {
#[doc(hidden)] type NonZeroInner: Copy;
}🔬This is a nightly-only experimental API. (
nonzero_internals)Expand description
A marker trait for primitive types which can be zero.
This is an implementation detail for NonZero<T> which may disappear or be replaced at any time.
§Safety
Types implementing this trait must be primitives that are valid when zeroed.
The associated Self::NonZeroInner type must have the same size+align as Self,
but with a niche and bit validity making it so the following transmutes are sound:
Self::NonZeroInnertoOption<Self::NonZeroInner>Option<Self::NonZeroInner>toSelf
(And, consequently, Self::NonZeroInner to Self.)
Required Associated Types§
#[doc(hidden)] type NonZeroInner: Copy
🔬This is a nightly-only experimental API. (
nonzero_internals)Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.