Trait owned_pin::Uninit

source ·
pub unsafe trait Uninit: Deref
where <Self as Deref>::Target: Sized,
{ type Uninit: Deref<Target = MaybeUninit<Self::Target>>; // Required method unsafe fn assume_init(this: Self::Uninit) -> Self; }
Expand description

Smart pointers that can convert their uninitialized forms into initialized forms.

Safety

The implementor of this trait must enable any valid uninitialized form to convert to its corresponding valid initialized form.

Required Associated Types§

source

type Uninit: Deref<Target = MaybeUninit<Self::Target>>

Required Methods§

source

unsafe fn assume_init(this: Self::Uninit) -> Self

Converts to its initialized form.

Safety

See MaybeUninit::assume_init for more information.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T> Uninit for ManuallyDrop<T>

§

type Uninit = ManuallyDrop<MaybeUninit<T>>

source§

unsafe fn assume_init(this: Self::Uninit) -> Self

source§

impl<T, A: Allocator + Clone> Uninit for Rc<T, A>

§

type Uninit = Rc<MaybeUninit<T>, A>

source§

unsafe fn assume_init(this: Self::Uninit) -> Self

source§

impl<T, A: Allocator + Clone> Uninit for Arc<T, A>

§

type Uninit = Arc<MaybeUninit<T>, A>

source§

unsafe fn assume_init(this: Self::Uninit) -> Self

source§

impl<T, A: Allocator> Uninit for Box<T, A>

§

type Uninit = Box<MaybeUninit<T>, A>

source§

unsafe fn assume_init(this: Self::Uninit) -> Self

Implementors§