pub trait ArrayIndexer<N> {
fn stride_from_local_point(shape: PointN<N>, point: Local<N>) -> Stride;
fn make_stride_iter(
array_shape: PointN<N>,
origin: Local<N>,
step: PointN<N>
) -> ArrayStrideIter;
fn for_each(for_each: ArrayForEach<N>, f: impl FnMut(PointN<N>, Stride));
fn for_each_lockstep_unchecked(
for_each: LockStepArrayForEach<N>,
f: impl FnMut(PointN<N>, (Stride, Stride))
);
fn strides_from_local_points(
shape: PointN<N>,
points: &[Local<N>],
strides: &mut [Stride]
)
where
PointN<N>: Copy,
{ ... }
}