[−][src]Trait typelayout::FromZeros
Working Example
This marker trait is implemented for structs iff it is ReprC
, has no
padding bytes, and all fields are also FromZeros
:
use typelayout::{ReprC, Generic, Layout, FromZeros}; #[derive(Generic, Default, Debug, PartialEq)] #[repr(C)] pub struct Struct { first: u8, second: u8, } unsafe impl ReprC for Struct {} assert_eq!(<Struct as Default>::default(), <Struct as FromZeros>::zeroed());
Failing Example
This marker trait is not implemented if a type has padding:
ⓘThis example deliberately fails to compile
use typelayout::{ReprC, Generic, Layout, FromZeros}; #[derive(Generic, Default, Debug, PartialEq)] #[repr(C)] pub struct Struct { first: u8, second: u16, // padding will be inserted between `first` and `second` } unsafe impl ReprC for Struct {} // `Struct` does not implement `FromZeros`, because it has a padding byte! assert_eq!(<Struct as Default>::default(), <Struct as FromZeros>::zeroed());
Provided methods
Loading content...Implementations on Foreign Types
impl<T> FromZeros for *const T
[src]
A *const T
from zeros is a null pointer.
impl<T> FromZeros for *mut T
[src]
A *mut T
from zeros is a null pointer.