ZeroablePrimitive in std::num - Rust (original) (raw)

Trait 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](struct.NonZero.html "struct std::num::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:

(And, consequently, Self::NonZeroInner to Self.)

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§