@@ -813,9 +813,7 @@ impl<'a, K, V> Iterator for Keys<'a, K, V> {
813
813
}
814
814
815
815
impl < K , V > DoubleEndedIterator for Keys < ' _ , K , V > {
816
- fn next_back ( & mut self ) -> Option < Self :: Item > {
817
- self . iter . next_back ( ) . map ( Bucket :: key_ref)
818
- }
816
+ double_ended_iterator_methods ! ( Bucket :: key_ref) ;
819
817
}
820
818
821
819
impl < K , V > ExactSizeIterator for Keys < ' _ , K , V > {
@@ -857,9 +855,7 @@ impl<K, V> Iterator for IntoKeys<K, V> {
857
855
}
858
856
859
857
impl < K , V > DoubleEndedIterator for IntoKeys < K , V > {
860
- fn next_back ( & mut self ) -> Option < Self :: Item > {
861
- self . iter . next_back ( ) . map ( Bucket :: key)
862
- }
858
+ double_ended_iterator_methods ! ( Bucket :: key) ;
863
859
}
864
860
865
861
impl < K , V > ExactSizeIterator for IntoKeys < K , V > {
@@ -893,9 +889,7 @@ impl<'a, K, V> Iterator for Values<'a, K, V> {
893
889
}
894
890
895
891
impl < K , V > DoubleEndedIterator for Values < ' _ , K , V > {
896
- fn next_back ( & mut self ) -> Option < Self :: Item > {
897
- self . iter . next_back ( ) . map ( Bucket :: value_ref)
898
- }
892
+ double_ended_iterator_methods ! ( Bucket :: value_ref) ;
899
893
}
900
894
901
895
impl < K , V > ExactSizeIterator for Values < ' _ , K , V > {
@@ -937,9 +931,7 @@ impl<'a, K, V> Iterator for ValuesMut<'a, K, V> {
937
931
}
938
932
939
933
impl < K , V > DoubleEndedIterator for ValuesMut < ' _ , K , V > {
940
- fn next_back ( & mut self ) -> Option < Self :: Item > {
941
- self . iter . next_back ( ) . map ( Bucket :: value_mut)
942
- }
934
+ double_ended_iterator_methods ! ( Bucket :: value_mut) ;
943
935
}
944
936
945
937
impl < K , V > ExactSizeIterator for ValuesMut < ' _ , K , V > {
@@ -966,9 +958,7 @@ impl<K, V> Iterator for IntoValues<K, V> {
966
958
}
967
959
968
960
impl < K , V > DoubleEndedIterator for IntoValues < K , V > {
969
- fn next_back ( & mut self ) -> Option < Self :: Item > {
970
- self . iter . next_back ( ) . map ( Bucket :: value)
971
- }
961
+ double_ended_iterator_methods ! ( Bucket :: value) ;
972
962
}
973
963
974
964
impl < K , V > ExactSizeIterator for IntoValues < K , V > {
@@ -1002,9 +992,7 @@ impl<'a, K, V> Iterator for Iter<'a, K, V> {
1002
992
}
1003
993
1004
994
impl < K , V > DoubleEndedIterator for Iter < ' _ , K , V > {
1005
- fn next_back ( & mut self ) -> Option < Self :: Item > {
1006
- self . iter . next_back ( ) . map ( Bucket :: refs)
1007
- }
995
+ double_ended_iterator_methods ! ( Bucket :: refs) ;
1008
996
}
1009
997
1010
998
impl < K , V > ExactSizeIterator for Iter < ' _ , K , V > {
@@ -1046,9 +1034,7 @@ impl<'a, K, V> Iterator for IterMut<'a, K, V> {
1046
1034
}
1047
1035
1048
1036
impl < K , V > DoubleEndedIterator for IterMut < ' _ , K , V > {
1049
- fn next_back ( & mut self ) -> Option < Self :: Item > {
1050
- self . iter . next_back ( ) . map ( Bucket :: ref_mut)
1051
- }
1037
+ double_ended_iterator_methods ! ( Bucket :: ref_mut) ;
1052
1038
}
1053
1039
1054
1040
impl < K , V > ExactSizeIterator for IterMut < ' _ , K , V > {
@@ -1075,9 +1061,7 @@ impl<K, V> Iterator for IntoIter<K, V> {
1075
1061
}
1076
1062
1077
1063
impl < K , V > DoubleEndedIterator for IntoIter < K , V > {
1078
- fn next_back ( & mut self ) -> Option < Self :: Item > {
1079
- self . iter . next_back ( ) . map ( Bucket :: key_value)
1080
- }
1064
+ double_ended_iterator_methods ! ( Bucket :: key_value) ;
1081
1065
}
1082
1066
1083
1067
impl < K , V > ExactSizeIterator for IntoIter < K , V > {
0 commit comments