@@ -813,9 +813,7 @@ impl<'a, K, V> Iterator for Keys<'a, K, V> {
813813}
814814
815815impl < 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) ;
819817}
820818
821819impl < K , V > ExactSizeIterator for Keys < ' _ , K , V > {
@@ -857,9 +855,7 @@ impl<K, V> Iterator for IntoKeys<K, V> {
857855}
858856
859857impl < 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) ;
863859}
864860
865861impl < K , V > ExactSizeIterator for IntoKeys < K , V > {
@@ -893,9 +889,7 @@ impl<'a, K, V> Iterator for Values<'a, K, V> {
893889}
894890
895891impl < 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) ;
899893}
900894
901895impl < K , V > ExactSizeIterator for Values < ' _ , K , V > {
@@ -937,9 +931,7 @@ impl<'a, K, V> Iterator for ValuesMut<'a, K, V> {
937931}
938932
939933impl < 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) ;
943935}
944936
945937impl < K , V > ExactSizeIterator for ValuesMut < ' _ , K , V > {
@@ -966,9 +958,7 @@ impl<K, V> Iterator for IntoValues<K, V> {
966958}
967959
968960impl < 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) ;
972962}
973963
974964impl < K , V > ExactSizeIterator for IntoValues < K , V > {
@@ -1002,9 +992,7 @@ impl<'a, K, V> Iterator for Iter<'a, K, V> {
1002992}
1003993
1004994impl < 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) ;
1008996}
1009997
1010998impl < K , V > ExactSizeIterator for Iter < ' _ , K , V > {
@@ -1046,9 +1034,7 @@ impl<'a, K, V> Iterator for IterMut<'a, K, V> {
10461034}
10471035
10481036impl < 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) ;
10521038}
10531039
10541040impl < K , V > ExactSizeIterator for IterMut < ' _ , K , V > {
@@ -1075,9 +1061,7 @@ impl<K, V> Iterator for IntoIter<K, V> {
10751061}
10761062
10771063impl < 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) ;
10811065}
10821066
10831067impl < K , V > ExactSizeIterator for IntoIter < K , V > {
0 commit comments