pub unsafe trait Zeroable: Sized {
// Provided method
fn zeroed() -> Self { ... }
}
Expand description
Transform
requires pixel types to implement these traits.
This is necesary to prevent unsafe writes to abitrary types with pointers or padding.
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 impl
s are feature gated due to the MSRV policy:
MaybeUninit<T>
was not available in 1.34.0, but is available under thezeroable_maybe_uninit
feature flag.Atomic*
types require Rust 1.60.0 or later to work on certain platforms, but is available under thezeroable_atomics
feature flag.[T; N]
for arbitraryN
requires themin_const_generics
feature flag.
Provided Methods§
Object Safety§
This trait is not object safe.