@@ -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,22 @@ 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
+ fn into_iter ( self ) -> Self :: IntoIter {
1648
+ self . iter ( )
1649
+ }
1650
+ }
1651
+
1652
+ impl < ' a , T > IntoIterator for & ' a mut Grid < T > {
1653
+ type IntoIter = core:: slice:: IterMut < ' a , T > ;
1654
+ type Item = & ' a mut T ;
1655
+ fn into_iter ( self ) -> Self :: IntoIter {
1656
+ self . iter_mut ( )
1657
+ }
1658
+ }
1659
+
1646
1660
impl < T : fmt:: Debug > fmt:: Debug for Grid < T > {
1647
1661
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
1648
1662
write ! ( f, "[" ) ?;
@@ -2710,6 +2724,23 @@ mod test {
2710
2724
assert_eq ! ( iter. next( ) , None ) ;
2711
2725
}
2712
2726
2727
+ #[ test]
2728
+ fn into_iter ( ) {
2729
+ let grid: Grid < u8 > = grid ! [ [ 1 , 1 ] [ 1 , 1 ] ] ;
2730
+ for val in & grid {
2731
+ assert_eq ! ( val, & 1 ) ;
2732
+ }
2733
+ }
2734
+
2735
+ #[ test]
2736
+ fn into_iter_mut ( ) {
2737
+ let mut grid: Grid < u8 > = grid ! [ [ 1 , 1 ] [ 1 , 1 ] ] ;
2738
+ for val in & mut grid {
2739
+ * val = 2 ;
2740
+ }
2741
+ assert_eq ! ( grid, grid![ [ 2 , 2 ] [ 2 , 2 ] ] ) ;
2742
+ }
2743
+
2713
2744
#[ test]
2714
2745
fn indexed_iter ( ) {
2715
2746
let grid: Grid < u8 > = grid ! [ [ 1 , 2 ] [ 3 , 4 ] ] ;
@@ -2926,7 +2957,7 @@ mod test {
2926
2957
2927
2958
impl Person {
2928
2959
fn new ( name : & str , precise_age : f32 ) -> Self {
2929
- Person {
2960
+ Self {
2930
2961
_name : name. into ( ) ,
2931
2962
_precise_age : precise_age,
2932
2963
}
0 commit comments