struct Guard<'a, T> {
pub array_mut: &'a mut [MaybeUninit<T>],
pub initialized: usize,
}
Expand description
Panic guard for incremental initialization of arrays.
Disarm the guard with mem::forget
once the array has been initialized.
Safety
All write accesses to this structure are unsafe and must maintain a correct
count of initialized
elements.
To minimize indirection fields are still pub but callers should at least use
push_unchecked
to signal that something unsafe is going on.
Fields§
§array_mut: &'a mut [MaybeUninit<T>]
The array to be initialized.
initialized: usize
The number of items that have been initialized so far.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> Freeze for Guard<'a, T>
impl<'a, T> RefUnwindSafe for Guard<'a, T>where T: RefUnwindSafe,
impl<'a, T> Send for Guard<'a, T>where T: Send,
impl<'a, T> Sync for Guard<'a, T>where T: Sync,
impl<'a, T> Unpin for Guard<'a, T>
impl<'a, T> !UnwindSafe for Guard<'a, T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more