[−][src]Trait possibly_uninit::BorrowUninitMut
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_uninit_mut(&mut self) -> RefMut<Borrowed>
Mutably borrows maybe uninitialized value.
This method must return RefMut
instead of normal &mut T
because of
safety reasons described in the documentation of RefMut
type.
Provided methods
unsafe fn assume_init_mut(&mut self) -> &mut Borrowed
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
Initializes the memory location with valid value.
fn default_if_needed(&mut self) -> &mut Borrowed where
Borrowed: Default,
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,
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> BorrowUninitMut<T> for MaybeUninit<T>
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<T>
[src]
impl<'_, T> BorrowUninitMut<T> for &'_ mut MaybeUninit<T>
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<T>
[src]
impl<'_, T> BorrowUninitMut<T> for RefMut<'_, T>
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<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> BorrowUninitMut<T> for RefMut<'_, MaybeUninit<T>>
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<T>
[src]
Implementors
impl<'_, T> BorrowUninitMut<T> for &'_ mut T
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<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<'a, T> BorrowUninitMut<T> for possibly_uninit::RefMut<'a, T>
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<T>
[src]
impl<T> BorrowUninitMut<T> for T
[src]
fn borrow_uninit_mut(&mut self) -> RefMut<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,