pub trait FlatDefault: Flat {
type DefaultEmplacer: Emplacer<Self>;
// Required method
fn default_emplacer() -> Self::DefaultEmplacer;
// Provided method
fn default_in_place(bytes: &mut [u8]) -> Result<&mut Self, Error> { ... }
}Expand description
Flat types that can be initialized to default state.
§Safety
Methods must properly initialize memory.
Required Associated Types§
type DefaultEmplacer: Emplacer<Self>
Required Methods§
Sourcefn default_emplacer() -> Self::DefaultEmplacer
fn default_emplacer() -> Self::DefaultEmplacer
Initialize uninitialized memory into valid default state.
This method returned Ok must guaratee that this could be safely transmuted to Self.
Provided Methods§
Sourcefn default_in_place(bytes: &mut [u8]) -> Result<&mut Self, Error>
fn default_in_place(bytes: &mut [u8]) -> Result<&mut Self, Error>
Create a new instance of Self initializing raw memory into default state of Self.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.