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 Zeroable for Ed25519SignatureOffsets

source§

impl Zeroable for Pubkey

source§

impl Zeroable for ()

source§

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

source§

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

source§

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

source§

impl Zeroable for __m256

source§

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

source§

impl Zeroable for i128

source§

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

source§

impl Zeroable for u8

source§

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

source§

impl Zeroable for __m128d

source§

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

source§

impl Zeroable for __m128

source§

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

source§

impl Zeroable for __m256d

source§

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

source§

impl Zeroable for i8

source§

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

source§

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

source§

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

source§

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

source§

impl Zeroable for __m128i

source§

impl Zeroable for f64

source§

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

source§

impl Zeroable for usize

source§

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

source§

impl Zeroable for *mut str

source§

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

source§

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

source§

impl Zeroable for u32

source§

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

source§

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

source§

impl Zeroable for __m256i

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<T> Zeroable for *const T

source§

impl Zeroable for i32

source§

impl Zeroable for isize

source§

impl Zeroable for i16

source§

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

source§

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

source§

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

source§

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

source§

impl Zeroable for i64

source§

impl Zeroable for char

source§

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

source§

impl Zeroable for u64

source§

impl Zeroable for u16

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<T> Zeroable for *const [T]

source§

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

source§

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

source§

impl<T> Zeroable for *mut T

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl Zeroable for *const str

source§

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

source§

impl<T> Zeroable for *mut [T]

source§

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

source§

impl Zeroable for u128

source§

impl Zeroable for PhantomPinned

source§

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

source§

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

source§

impl Zeroable for f32

source§

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

source§

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

source§

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

source§

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

source§

impl Zeroable for bool

source§

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

source§

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

source§

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

Implementors§