@@ -219,15 +219,6 @@ impl<'a> IntoDimension for &'a [Ix] {
219
219
}
220
220
}
221
221
222
- unsafe impl < ' a > NdIndex < IxDyn > for & ' a IxDyn {
223
- fn index_checked ( & self , dim : & IxDyn , strides : & IxDyn ) -> Option < isize > {
224
- ( * * self ) . index_checked ( dim, strides)
225
- }
226
- fn index_unchecked ( & self , strides : & IxDyn ) -> isize {
227
- ( * * self ) . index_unchecked ( strides)
228
- }
229
- }
230
-
231
222
unsafe impl < ' a > NdIndex < IxDyn > for & ' a [ Ix ] {
232
223
fn index_checked ( & self , dim : & IxDyn , strides : & IxDyn ) -> Option < isize > {
233
224
stride_offset_checked ( dim. ix ( ) , strides. ix ( ) , * self )
@@ -239,24 +230,23 @@ unsafe impl<'a> NdIndex<IxDyn> for &'a [Ix] {
239
230
}
240
231
}
241
232
242
- unsafe impl < ' a > NdIndex < IxDyn > for & ' a Vec < Ix > {
233
+ unsafe impl < ' a , T > NdIndex < IxDyn > for & T
234
+ where
235
+ T : NdIndex < IxDyn > ,
236
+ {
243
237
fn index_checked ( & self , dim : & IxDyn , strides : & IxDyn ) -> Option < isize > {
244
- stride_offset_checked ( dim . ix ( ) , strides . ix ( ) , * self )
238
+ ( * self ) . index_checked ( dim , strides )
245
239
}
246
240
fn index_unchecked ( & self , strides : & IxDyn ) -> isize {
247
- zip ( strides. ix ( ) , * self )
248
- . map ( |( & s, & i) | stride_offset ( i, s) )
249
- . sum ( )
241
+ ( * self ) . index_unchecked ( strides)
250
242
}
251
243
}
252
244
253
245
unsafe impl < ' a > NdIndex < IxDyn > for Vec < Ix > {
254
246
fn index_checked ( & self , dim : & IxDyn , strides : & IxDyn ) -> Option < isize > {
255
- stride_offset_checked ( dim . ix ( ) , strides . ix ( ) , self )
247
+ ( & * * self ) . index_checked ( dim , strides )
256
248
}
257
249
fn index_unchecked ( & self , strides : & IxDyn ) -> isize {
258
- zip ( strides. ix ( ) , self )
259
- . map ( |( & s, i) | stride_offset ( * i, s) )
260
- . sum ( )
250
+ ( & * * self ) . index_unchecked ( strides)
261
251
}
262
252
}
0 commit comments