Trait creusot_contracts::std::num::ZeroablePrimitive
source · pub unsafe trait ZeroablePrimitive:
Sized
+ Copy
+ Sealed { }
🔬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::NonZeroInner
toOption<Self::NonZeroInner>
Option<Self::NonZeroInner>
toSelf
(And, consequently, Self::NonZeroInner
to Self
.)
Object Safety§
This trait is not object safe.