Skip to main content

ordered_scan

Function ordered_scan 

Source
pub unsafe fn ordered_scan<T: Copy>(
    data: &[T],
    [_, len, inner]: [usize; 3],
    seed: Option<&[T]>,
    out: &mut Vec<T>,
    lane: &dyn Fn(Option<T>, &[T], usize, &mut Vec<T>) -> Option<Kind>,
    block: &dyn Fn(&[T], &[T], &mut [MaybeUninit<T>]) -> Result<(), Kind>,
) -> Option<Kind>
Expand description

Appends the ordered left scan of each lane of [outer, len, inner] in data to out, in the same layout: along the last axis by lane, one call for every lane, stepping from seed’s item; along any other axis by block, one call for each row, stepping the row before it, or seed’s row, by the row’s items. Without a seed, a lane’s first item or row is kept as it is. Gives the kind of the first step that failed.

§Safety

block must initialize every output slot before returning, including when it returns Err.