Skip to main content

validate_uninit_no_overlap

Function validate_uninit_no_overlap 

Source
pub fn validate_uninit_no_overlap(
    dest: &ErasedRawStridedUninitMut<'_>,
    input: &ErasedRawStridedPtr<'_>,
    input_index: usize,
) -> Result<(), StridedError>
Expand description

Reject an input overlapping any byte of the output backing allocation.

§Examples

use strided_basic::{ErasedRawStridedRef, ErasedRawStridedPtr, ErasedRawStridedUninitMut, execution::validate_uninit_no_overlap};
use core::mem::MaybeUninit;
let input = ErasedRawStridedRef::from_slice(&[2_i32], &[1], &[1], 0).unwrap();
let input = ErasedRawStridedPtr::from_ref(&input);
let mut values = [MaybeUninit::<i32>::uninit()];
let output = ErasedRawStridedUninitMut::from_uninit_slice(&mut values, &[1], &[1], 0).unwrap();
validate_uninit_no_overlap(&output, &input, 0).unwrap();

§Errors

Returns an overlap or byte-range overflow error without reading element values.