@@ -636,7 +636,6 @@ impl<T> Grid<T> {
636
636
/// assert_eq!(iter.next(), Some(&4));
637
637
/// assert_eq!(iter.next(), None);
638
638
/// ```
639
- #[ allow( clippy:: iter_without_into_iter) ]
640
639
pub fn iter ( & self ) -> Iter < T > {
641
640
self . data . iter ( )
642
641
}
@@ -653,7 +652,6 @@ impl<T> Grid<T> {
653
652
/// assert_eq!(next, Some(&mut 1));
654
653
/// *next.unwrap() = 10;
655
654
/// ```
656
- #[ allow( clippy:: iter_without_into_iter) ]
657
655
pub fn iter_mut ( & mut self ) -> IterMut < T > {
658
656
self . data . iter_mut ( )
659
657
}
@@ -1643,6 +1641,24 @@ impl<T> IndexMut<(usize, usize)> for Grid<T> {
1643
1641
}
1644
1642
}
1645
1643
1644
+ impl < ' a , T > IntoIterator for & ' a Grid < T > {
1645
+ type IntoIter = core:: slice:: Iter < ' a , T > ;
1646
+ type Item = & ' a T ;
1647
+
1648
+ fn into_iter ( self ) -> Self :: IntoIter {
1649
+ self . iter ( )
1650
+ }
1651
+ }
1652
+
1653
+ impl < ' a , T > IntoIterator for & ' a mut Grid < T > {
1654
+ type IntoIter = core:: slice:: IterMut < ' a , T > ;
1655
+ type Item = & ' a mut T ;
1656
+
1657
+ fn into_iter ( self ) -> Self :: IntoIter {
1658
+ self . iter_mut ( )
1659
+ }
1660
+ }
1661
+
1646
1662
impl < T : fmt:: Debug > fmt:: Debug for Grid < T > {
1647
1663
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
1648
1664
write ! ( f, "[" ) ?;
@@ -2710,6 +2726,23 @@ mod test {
2710
2726
assert_eq ! ( iter. next( ) , None ) ;
2711
2727
}
2712
2728
2729
+ #[ test]
2730
+ fn into_iter ( ) {
2731
+ let grid: Grid < u8 > = grid ! [ [ 1 , 1 ] [ 1 , 1 ] ] ;
2732
+ for val in & grid {
2733
+ assert_eq ! ( val, & 1 ) ;
2734
+ }
2735
+ }
2736
+
2737
+ #[ test]
2738
+ fn into_iter_mut ( ) {
2739
+ let mut grid: Grid < u8 > = grid ! [ [ 1 , 1 ] [ 1 , 1 ] ] ;
2740
+ for val in & mut grid {
2741
+ * val = 2 ;
2742
+ }
2743
+ assert_eq ! ( grid, grid![ [ 2 , 2 ] [ 2 , 2 ] ] ) ;
2744
+ }
2745
+
2713
2746
#[ test]
2714
2747
fn indexed_iter ( ) {
2715
2748
let grid: Grid < u8 > = grid ! [ [ 1 , 2 ] [ 3 , 4 ] ] ;
@@ -2926,7 +2959,7 @@ mod test {
2926
2959
2927
2960
impl Person {
2928
2961
fn new ( name : & str , precise_age : f32 ) -> Self {
2929
- Person {
2962
+ Self {
2930
2963
_name : name. into ( ) ,
2931
2964
_precise_age : precise_age,
2932
2965
}
0 commit comments