pub unsafe trait Zeroable: Sized {
    // Provided method
    fn zeroed() -> Self { ... }
}
Expand description

Trait for types that can be safely created with zeroed.

An all-zeroes value may or may not be the same value as the Default value of the type.

Safety

  • Your type must be inhabited (eg: no Infallible).
  • Your type must be allowed to be an “all zeroes” bit pattern (eg: no NonNull<T>).

Features

Some impls are feature gated due to the MSRV policy:

  • MaybeUninit<T> was not available in 1.34.0, but is available under the zeroable_maybe_uninit feature flag.
  • Atomic* types require Rust 1.60.0 or later to work on certain platforms, but is available under the zeroable_atomics feature flag.
  • [T; N] for arbitrary N requires the min_const_generics feature flag.

Provided Methods§

source

fn zeroed() -> Self

Calls zeroed.

This is a trait method so that you can write MyType::zeroed() in your code. It is a contract of this trait that if you implement it on your type you must not override this method.

Implementations on Foreign Types§

source§

impl<T> Zeroable for [T; 17]where T: Zeroable,

source§

impl<T: ZeroableInOption> Zeroable for Option<T>

source§

impl<T> Zeroable for [T; 20]where T: Zeroable,

source§

impl<T> Zeroable for [T; 15]where T: Zeroable,

source§

impl Zeroable for PhantomPinned

source§

impl<T> Zeroable for [T; 3]where T: Zeroable,

source§

impl<T: Zeroable> Zeroable for Wrapping<T>

source§

impl<T> Zeroable for [T; 256]where T: Zeroable,

source§

impl<T> Zeroable for [T; 26]where T: Zeroable,

source§

impl<T: Zeroable> Zeroable for ManuallyDrop<T>

source§

impl<T> Zeroable for [T; 21]where T: Zeroable,

source§

impl<T> Zeroable for [T; 23]where T: Zeroable,

source§

impl<T> Zeroable for [T; 10]where T: Zeroable,

source§

impl<T: Zeroable> Zeroable for UnsafeCell<T>

source§

impl<A: Zeroable, B: Zeroable> Zeroable for (A, B)

source§

impl<T> Zeroable for [T; 2048]where T: Zeroable,

source§

impl<T> Zeroable for [T; 8]where T: Zeroable,

source§

impl<T> Zeroable for [T; 128]where T: Zeroable,

source§

impl<T> Zeroable for [T; 0]where T: Zeroable,

source§

impl<T> Zeroable for [T; 64]where T: Zeroable,

source§

impl Zeroable for char

source§

impl<T> Zeroable for [T; 22]where T: Zeroable,

source§

impl<T> Zeroable for [T; 1024]where T: Zeroable,

source§

impl<T> Zeroable for [T; 28]where T: Zeroable,

source§

impl Zeroable for __m256

source§

impl<T> Zeroable for [T; 29]where T: Zeroable,

source§

impl<T> Zeroable for [T; 25]where T: Zeroable,

source§

impl<T> Zeroable for *mut T

source§

impl<T> Zeroable for [T; 4]where T: Zeroable,

source§

impl Zeroable for *const str

source§

impl<T> Zeroable for [T; 4096]where T: Zeroable,

source§

impl<T> Zeroable for [T; 31]where T: Zeroable,

source§

impl Zeroable for f32

source§

impl Zeroable for i128

source§

impl<T> Zeroable for [T; 14]where T: Zeroable,

source§

impl<T> Zeroable for [T; 19]where T: Zeroable,

source§

impl Zeroable for ()

source§

impl<T> Zeroable for [T; 5]where T: Zeroable,

source§

impl<T> Zeroable for [T; 48]where T: Zeroable,

source§

impl Zeroable for __m128

source§

impl<A: Zeroable, B: Zeroable, C: Zeroable> Zeroable for (A, B, C)

source§

impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable, E: Zeroable, F: Zeroable, G: Zeroable, H: Zeroable> Zeroable for (A, B, C, D, E, F, G, H)

source§

impl<T> Zeroable for [T; 2]where T: Zeroable,

source§

impl Zeroable for u16

source§

impl Zeroable for __m256d

source§

impl<T> Zeroable for [T; 7]where T: Zeroable,

source§

impl Zeroable for u8

source§

impl<T> Zeroable for [T; 1]where T: Zeroable,

source§

impl Zeroable for i16

source§

impl<T> Zeroable for [T; 24]where T: Zeroable,

source§

impl<T> Zeroable for *const T

source§

impl<T> Zeroable for [T; 9]where T: Zeroable,

source§

impl<A: Zeroable> Zeroable for (A,)

source§

impl Zeroable for isize

source§

impl Zeroable for __m128d

source§

impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable> Zeroable for (A, B, C, D)

source§

impl Zeroable for usize

source§

impl<T> Zeroable for [T; 27]where T: Zeroable,

source§

impl Zeroable for i64

source§

impl<T> Zeroable for [T; 30]where T: Zeroable,

source§

impl Zeroable for u64

source§

impl Zeroable for u128

source§

impl Zeroable for __m256i

source§

impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable, E: Zeroable, F: Zeroable> Zeroable for (A, B, C, D, E, F)

source§

impl<T> Zeroable for [T; 12]where T: Zeroable,

source§

impl<T> Zeroable for [T; 32]where T: Zeroable,

source§

impl<T> Zeroable for [T; 512]where T: Zeroable,

source§

impl Zeroable for f64

source§

impl<T> Zeroable for [T; 11]where T: Zeroable,

source§

impl<T> Zeroable for [T; 96]where T: Zeroable,

source§

impl<T> Zeroable for [T; 16]where T: Zeroable,

source§

impl Zeroable for i8

source§

impl<T: Zeroable> Zeroable for Cell<T>

source§

impl Zeroable for u32

source§

impl<T: ?Sized> Zeroable for PhantomData<T>

source§

impl Zeroable for __m128i

source§

impl<T: Zeroable> Zeroable for Reverse<T>

source§

impl<T> Zeroable for *const [T]

source§

impl<T> Zeroable for [T; 6]where T: Zeroable,

source§

impl<T> Zeroable for [T; 13]where T: Zeroable,

source§

impl Zeroable for bool

source§

impl<T> Zeroable for [T; 18]where T: Zeroable,

source§

impl Zeroable for i32

source§

impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable, E: Zeroable> Zeroable for (A, B, C, D, E)

source§

impl<T> Zeroable for *mut [T]

source§

impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable, E: Zeroable, F: Zeroable, G: Zeroable> Zeroable for (A, B, C, D, E, F, G)

source§

impl Zeroable for *mut str

Implementors§