@@ -13,6 +13,7 @@ mod windows;
13
13
mod lanes;
14
14
pub mod iter;
15
15
16
+ use std:: iter:: FromIterator ;
16
17
use std:: marker:: PhantomData ;
17
18
use std:: ptr;
18
19
@@ -388,6 +389,54 @@ impl<'a, A, D: Dimension> Iterator for Iter<'a, A, D> {
388
389
{
389
390
either ! ( self . inner, iter => iter. fold( init, g) )
390
391
}
392
+
393
+ fn nth ( & mut self , n : usize ) -> Option < Self :: Item > {
394
+ either_mut ! ( self . inner, iter => iter. nth( n) )
395
+ }
396
+
397
+ fn collect < B > ( self ) -> B
398
+ where B : FromIterator < Self :: Item >
399
+ {
400
+ either ! ( self . inner, iter => iter. collect( ) )
401
+ }
402
+
403
+ fn all < F > ( & mut self , f : F ) -> bool
404
+ where F : FnMut ( Self :: Item ) -> bool
405
+ {
406
+ either_mut ! ( self . inner, iter => iter. all( f) )
407
+ }
408
+
409
+ fn any < F > ( & mut self , f : F ) -> bool
410
+ where F : FnMut ( Self :: Item ) -> bool
411
+ {
412
+ either_mut ! ( self . inner, iter => iter. any( f) )
413
+ }
414
+
415
+ fn find < P > ( & mut self , predicate : P ) -> Option < Self :: Item >
416
+ where P : FnMut ( & Self :: Item ) -> bool
417
+ {
418
+ either_mut ! ( self . inner, iter => iter. find( predicate) )
419
+ }
420
+
421
+ fn find_map < B , F > ( & mut self , f : F ) -> Option < B >
422
+ where F : FnMut ( Self :: Item ) -> Option < B >
423
+ {
424
+ either_mut ! ( self . inner, iter => iter. find_map( f) )
425
+ }
426
+
427
+ fn count ( self ) -> usize {
428
+ either ! ( self . inner, iter => iter. count( ) )
429
+ }
430
+
431
+ fn last ( self ) -> Option < Self :: Item > {
432
+ either ! ( self . inner, iter => iter. last( ) )
433
+ }
434
+
435
+ fn position < P > ( & mut self , predicate : P ) -> Option < usize >
436
+ where P : FnMut ( Self :: Item ) -> bool ,
437
+ {
438
+ either_mut ! ( self . inner, iter => iter. position( predicate) )
439
+ }
391
440
}
392
441
393
442
impl < ' a , A > DoubleEndedIterator for Iter < ' a , A , Ix1 > {
@@ -455,6 +504,54 @@ impl<'a, A, D: Dimension> Iterator for IterMut<'a, A, D> {
455
504
{
456
505
either ! ( self . inner, iter => iter. fold( init, g) )
457
506
}
507
+
508
+ fn nth ( & mut self , n : usize ) -> Option < Self :: Item > {
509
+ either_mut ! ( self . inner, iter => iter. nth( n) )
510
+ }
511
+
512
+ fn collect < B > ( self ) -> B
513
+ where B : FromIterator < Self :: Item >
514
+ {
515
+ either ! ( self . inner, iter => iter. collect( ) )
516
+ }
517
+
518
+ fn all < F > ( & mut self , f : F ) -> bool
519
+ where F : FnMut ( Self :: Item ) -> bool
520
+ {
521
+ either_mut ! ( self . inner, iter => iter. all( f) )
522
+ }
523
+
524
+ fn any < F > ( & mut self , f : F ) -> bool
525
+ where F : FnMut ( Self :: Item ) -> bool
526
+ {
527
+ either_mut ! ( self . inner, iter => iter. any( f) )
528
+ }
529
+
530
+ fn find < P > ( & mut self , predicate : P ) -> Option < Self :: Item >
531
+ where P : FnMut ( & Self :: Item ) -> bool
532
+ {
533
+ either_mut ! ( self . inner, iter => iter. find( predicate) )
534
+ }
535
+
536
+ fn find_map < B , F > ( & mut self , f : F ) -> Option < B >
537
+ where F : FnMut ( Self :: Item ) -> Option < B >
538
+ {
539
+ either_mut ! ( self . inner, iter => iter. find_map( f) )
540
+ }
541
+
542
+ fn count ( self ) -> usize {
543
+ either ! ( self . inner, iter => iter. count( ) )
544
+ }
545
+
546
+ fn last ( self ) -> Option < Self :: Item > {
547
+ either ! ( self . inner, iter => iter. last( ) )
548
+ }
549
+
550
+ fn position < P > ( & mut self , predicate : P ) -> Option < usize >
551
+ where P : FnMut ( Self :: Item ) -> bool ,
552
+ {
553
+ either_mut ! ( self . inner, iter => iter. position( predicate) )
554
+ }
458
555
}
459
556
460
557
impl < ' a , A > DoubleEndedIterator for IterMut < ' a , A , Ix1 > {
0 commit comments