pub fn copy_into_uninit<T>(
dest: &mut StridedViewMut<'_, MaybeUninit<T>>,
src: &StridedView<'_, T>,
) -> Result<(), StridedError>where
T: Copy + MaybeSendSync + 'static,Expand description
Copy initialized values into a potentially uninitialized destination.
On success every logical destination element is initialized; holes are
untouched. Accepts identity views; use map_into for element operations
such as conjugation. Sequential strided f32/f64 copies use the permutation
engine; other types, contiguous and bounded parallel copies retain map.
§Errors
Returns a shape/rank error for mismatched views, NonInjectiveOutputLayout
for overlapping destination elements, or OffsetOverflow for size overflow.
§Examples
use std::mem::MaybeUninit;
use strided_basic::{copy_into_uninit, StridedView, StridedViewMut};
let src = [1.0_f64, 2.0];
let mut dst = [MaybeUninit::uninit(); 2];
copy_into_uninit(
&mut StridedViewMut::new(&mut dst, &[2], &[1], 0).unwrap(),
&StridedView::new(&src, &[2], &[1], 0).unwrap(),
).unwrap();
// SAFETY: the successful copy initialized both destination elements.
assert_eq!(unsafe { dst[1].assume_init() }, 2.0);