Trait possibly_uninit::BorrowOut [−][src]
Trait allowing mutably borrowing of MaybeUninit<T>
values.
It’s analogous to core::borrow::Borrow
, expect it works with
MaybeUninit
values.
Required methods
fn borrow_out(&mut self) -> Out<'_, Borrowed>
[src]
Mutably borrows maybe uninitialized value.
This method must return Out
instead of normal &mut T
because of
safety reasons described in the documentation of Out
type.
Provided methods
unsafe fn assume_init_mut(&mut self) -> &mut Borrowed
[src]
Converts the reference assuming it’s initialized.
Safety
Calling this method on uninitialized value is undefined behavior.
fn init(&mut self, item: Borrowed) -> &mut Borrowed
[src]
Initializes the memory location with valid value.
fn default_if_needed(&mut self) -> &mut Borrowed where
Borrowed: Default,
[src]
Borrowed: Default,
Overwrites the memory with Default::default()
if necessary.
This method is noop on &mut Borrowed
types. It may be used when
interfacing with legacy code which can’t work with
MaybeUninit<Borrowed>
.
fn zeroed_if_needed(&mut self) -> &mut Borrowed where
Borrowed: ZeroValid,
[src]
Borrowed: ZeroValid,
Overwrites the memory with Default::default()
if necessary.
This method is noop on &mut Borrowed
types. It may be used when
interfacing with legacy code which can’t work with
MaybeUninit<Borrowed>
.
Implementations on Foreign Types
impl<T> BorrowOut<T> for MaybeUninit<T>
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
impl<T> BorrowOut<T> for &mut MaybeUninit<T>
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
impl<T> BorrowOut<T> for RefMut<'_, T>
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
fn default_if_needed(&mut self) -> &mut T where
T: Default,
[src]
T: Default,
fn zeroed_if_needed(&mut self) -> &mut T where
T: ZeroValid,
[src]
T: ZeroValid,
impl<T> BorrowOut<T> for RefMut<'_, MaybeUninit<T>>
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
Implementors
impl<'a, T> BorrowOut<T> for Out<'a, T>
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
impl<T> BorrowOut<T> for &mut T
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
fn default_if_needed(&mut self) -> &mut T where
T: Default,
[src]
T: Default,
fn zeroed_if_needed(&mut self) -> &mut T where
T: ZeroValid,
[src]
T: ZeroValid,
impl<T> BorrowOut<T> for T
[src]
fn borrow_out(&mut self) -> Out<'_, T>
[src]
fn default_if_needed(&mut self) -> &mut T where
T: Default,
[src]
T: Default,
fn zeroed_if_needed(&mut self) -> &mut T where
T: ZeroValid,
[src]
T: ZeroValid,