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> UnsafeUnpin 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
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)The largest safe length for a
[Self]
. Read more