pub struct UninitArray<T: Element, D: Dimension> { /* private fields */ }Expand description
An array whose elements have not been initialized.
The caller must call assume_init after
filling all elements.
Implementations§
Source§impl<T: Element, D: Dimension> UninitArray<T, D>
impl<T: Element, D: Dimension> UninitArray<T, D>
Sourcepub fn as_mut_ptr(&mut self) -> *mut MaybeUninit<T>
pub fn as_mut_ptr(&mut self) -> *mut MaybeUninit<T>
Get a mutable raw pointer to the underlying data.
Use this to fill the array element-by-element before calling
assume_init().
Sourcepub fn write_at(&mut self, flat_index: usize, value: T) -> FerrayResult<()>
pub fn write_at(&mut self, flat_index: usize, value: T) -> FerrayResult<()>
Write a value at a flat index.
§Errors
Returns FerrayError::IndexOutOfBounds if flat_index >= size().
Sourcepub unsafe fn assume_init(self) -> Array<T, D>
pub unsafe fn assume_init(self) -> Array<T, D>
Convert to an initialized Array<T, D>.
§Safety
The caller must ensure that all elements have been initialized
(e.g., via write_at or raw pointer writes). Reading uninitialized
memory is undefined behavior.
Auto Trait Implementations§
impl<T, D> Freeze for UninitArray<T, D>where
D: Freeze,
impl<T, D> RefUnwindSafe for UninitArray<T, D>where
D: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, D> Send for UninitArray<T, D>
impl<T, D> Sync for UninitArray<T, D>
impl<T, D> Unpin for UninitArray<T, D>
impl<T, D> UnsafeUnpin for UninitArray<T, D>where
D: UnsafeUnpin,
impl<T, D> UnwindSafe for UninitArray<T, D>where
D: UnwindSafe,
T: UnwindSafe,
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