Trait EmplaceInitializer

Source
pub trait EmplaceInitializer {
    type Output: ?Sized;

    // Required methods
    fn layout(&mut self) -> Layout;
    fn emplace(self, ptr: NonNull<u8>) -> NonNull<Self::Output>;
}
Expand description

An abstract interface for all emplace initializer

Required Associated Types§

Required Methods§

Source

fn layout(&mut self) -> Layout

Layout of the type

Source

fn emplace(self, ptr: NonNull<u8>) -> NonNull<Self::Output>

Emplace the type in given memory

Implementors§

Source§

impl<Item, F: FnMut() -> Item> EmplaceInitializer for SliceFnInitializer<Item, F>

Source§

impl<Iter: Iterator> EmplaceInitializer for SliceIterInitializer<Iter>

Source§

type Output = [<Iter as Iterator>::Item]

Source§

impl<Output, F> EmplaceInitializer for RawInitializer<Output, F>
where Output: ?Sized, F: FnOnce(NonNull<u8>) -> NonNull<Output>,

Source§

type Output = Output

Source§

impl<T> EmplaceInitializer for DirectInitializer<T>

Source§

impl<T: Unsize<U>, U: ?Sized> EmplaceInitializer for CoercionInitializer<T, U>