[][src]Union std::mem::MaybeUninit

pub union MaybeUninit<T> {
    // some fields omitted
}
🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

A newtype to construct uninitialized instances of T

Methods

impl<T> MaybeUninit<T>[src]

pub fn new(val: T) -> MaybeUninit<T>[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Create a new MaybeUninit initialized with the given value.

Note that dropping a MaybeUninit will never call T's drop code. It is your responsibility to make sure T gets dropped if it got initialized.

pub fn uninitialized() -> MaybeUninit<T>[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Create a new MaybeUninit in an uninitialized state.

Note that dropping a MaybeUninit will never call T's drop code. It is your responsibility to make sure T gets dropped if it got initialized.

pub fn zeroed() -> MaybeUninit<T>[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Create a new MaybeUninit in an uninitialized state, with the memory being filled with 0 bytes. It depends on T whether that already makes for proper initialization. For example, MaybeUninit<usize>::zeroed() is initialized, but MaybeUninit<&'static i32>::zeroed() is not because references must not be null.

Note that dropping a MaybeUninit will never call T's drop code. It is your responsibility to make sure T gets dropped if it got initialized.

pub fn set(&mut self, val: T)[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Set the value of the MaybeUninit. This overwrites any previous value without dropping it.

pub unsafe fn into_inner(self) -> T[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Extract the value from the MaybeUninit container. This is a great way to ensure that the data will get dropped, because the resulting T is subject to the usual drop handling.

Unsafety

It is up to the caller to guarantee that the MaybeUninit really is in an initialized state, otherwise this will immediately cause undefined behavior.

Important traits for &'_ mut I
pub unsafe fn get_ref(&self) -> &T[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Get a reference to the contained value.

Unsafety

It is up to the caller to guarantee that the MaybeUninit really is in an initialized state, otherwise this will immediately cause undefined behavior.

Important traits for &'_ mut I
pub unsafe fn get_mut(&mut self) -> &mut T[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Get a mutable reference to the contained value.

Unsafety

It is up to the caller to guarantee that the MaybeUninit really is in an initialized state, otherwise this will immediately cause undefined behavior.

pub fn as_ptr(&self) -> *const T[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Get a pointer to the contained value. Reading from this pointer will be undefined behavior unless the MaybeUninit is initialized.

pub fn as_mut_ptr(&mut self) -> *mut T[src]

🔬 This is a nightly-only experimental API. (maybe_uninit #53491)

Get a mutable pointer to the contained value. Reading from this pointer will be undefined behavior unless the MaybeUninit is initialized.

Auto Trait Implementations

impl<T> Send for MaybeUninit<T> where
    T: Send

impl<T> Sync for MaybeUninit<T> where
    T: Sync

Blanket Implementations

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from #33417)

The type returned in the event of a conversion error.

impl<T> From for T[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from #33417)

The type returned in the event of a conversion error.

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]