Skip to content

Commit 1a309b9

Browse files
committed
Override size_hint and implement ExactSizeIterator
1 parent c15dac1 commit 1a309b9

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

‎src/array.rs‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,10 @@ impl<'a, T: 'a> Iterator for Iter<'a, T>{
273273
fnnext(&mutself) -> Option<&'aT>{
274274
self.inner.next()
275275
}
276+
277+
fnsize_hint(&self) -> (usize,Option<usize>){
278+
self.inner.size_hint()
279+
}
276280
}
277281

278282
impl<'a,T:'a>DoubleEndedIteratorforIter<'a,T>{
@@ -281,6 +285,12 @@ impl<'a, T: 'a> DoubleEndedIterator for Iter<'a, T>{
281285
}
282286
}
283287

288+
impl<'a,T:'a>ExactSizeIteratorforIter<'a,T>{
289+
fnlen(&self) -> usize{
290+
self.inner.len()
291+
}
292+
}
293+
284294
/// An iterator over mutable references to values of an `Array` in the
285295
/// higher-dimensional equivalent of row-major order.
286296
pubstructIterMut<'a,T:'a>{
@@ -293,6 +303,10 @@ impl<'a, T: 'a> Iterator for IterMut<'a, T>{
293303
fnnext(&mutself) -> Option<&'amutT>{
294304
self.inner.next()
295305
}
306+
307+
fnsize_hint(&self) -> (usize,Option<usize>){
308+
self.inner.size_hint()
309+
}
296310
}
297311

298312
impl<'a,T:'a>DoubleEndedIteratorforIterMut<'a,T>{
@@ -301,6 +315,12 @@ impl<'a, T: 'a> DoubleEndedIterator for IterMut<'a, T>{
301315
}
302316
}
303317

318+
impl<'a,T:'a>ExactSizeIteratorforIterMut<'a,T>{
319+
fnlen(&self) -> usize{
320+
self.inner.len()
321+
}
322+
}
323+
304324
/// An iterator over values of an `Array` in the higher-dimensional
305325
/// equivalent of row-major order.
306326
pubstructIntoIter<T>{
@@ -313,10 +333,20 @@ impl<T> Iterator for IntoIter<T>{
313333
fnnext(&mutself) -> Option<T>{
314334
self.inner.next()
315335
}
336+
337+
fnsize_hint(&self) -> (usize,Option<usize>){
338+
self.inner.size_hint()
339+
}
316340
}
317341

318342
impl<T>DoubleEndedIteratorforIntoIter<T>{
319343
fnnext_back(&mutself) -> Option<T>{
320344
self.inner.next_back()
321345
}
322346
}
347+
348+
impl<T>ExactSizeIteratorforIntoIter<T>{
349+
fnlen(&self) -> usize{
350+
self.inner.len()
351+
}
352+
}

0 commit comments

Comments
(0)