Skip to content

Commit fee71af

Browse files
committed
Impl NdIndex<IxDyn> for &Vec<Ix> and Vec<Ix>
1 parent a7d1fd6 commit fee71af

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/dimension/ndindex.rs

+22
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,25 @@ unsafe impl<'a> NdIndex<IxDyn> for &'a [Ix] {
238238
.sum()
239239
}
240240
}
241+
242+
unsafe impl<'a> NdIndex<IxDyn> for &'a Vec<Ix> {
243+
fn index_checked(&self, dim: &IxDyn, strides: &IxDyn) -> Option<isize> {
244+
stride_offset_checked(dim.ix(), strides.ix(), *self)
245+
}
246+
fn index_unchecked(&self, strides: &IxDyn) -> isize {
247+
zip(strides.ix(), *self)
248+
.map(|(&s, &i)| stride_offset(i, s))
249+
.sum()
250+
}
251+
}
252+
253+
unsafe impl<'a> NdIndex<IxDyn> for Vec<Ix> {
254+
fn index_checked(&self, dim: &IxDyn, strides: &IxDyn) -> Option<isize> {
255+
stride_offset_checked(dim.ix(), strides.ix(), self)
256+
}
257+
fn index_unchecked(&self, strides: &IxDyn) -> isize {
258+
zip(strides.ix(), self)
259+
.map(|(&s, i)| stride_offset(*i, s))
260+
.sum()
261+
}
262+
}

0 commit comments

Comments
 (0)