Trait default_boxed::DefaultBoxed
source · [−]pub unsafe trait DefaultBoxed {
unsafe fn default_in_place(ptr: *mut Self);
fn default_boxed() -> Box<Self>
where
Self: Sized,
{ ... }
fn default_boxed_array<const N: usize>() -> Box<[Self; N]>
where
Self: Sized,
{ ... }
}
Expand description
Helper trait to create a boxed instance of the given type with a default value for each field.
This trait can be derived for structs.
To derive this trait, each field needs to also implement this trait, but all types which
implements Default
implements this trait via the blanket impl
already.
In addition, if a field is an array, only the item type needs to implement this trait, and each item would be initialized separately.
Safety
Implementations must ensure that default_in_place
initializes the value on the given pointer.
Required methods
unsafe fn default_in_place(ptr: *mut Self)
unsafe fn default_in_place(ptr: *mut Self)
Fill the given memory location with default value.
Safety
For callers, behavior is undefined if ptr
is not valid for writes, or it is not properly
aligned.
For impls, behavior is undefined if this method reads from ptr
.
Provided methods
fn default_boxed() -> Box<Self> where
Self: Sized,
fn default_boxed() -> Box<Self> where
Self: Sized,
Create a boxed instance with default value for each field.