1- use crate :: cmp:: Ordering ;
21use crate :: iter:: adapters:: zip:: try_get_unchecked;
32use crate :: iter:: adapters:: { SourceIter , TrustedRandomAccess , TrustedRandomAccessNoCoerce } ;
43use crate :: iter:: { FusedIterator , InPlaceIterable , TrustedLen } ;
@@ -49,35 +48,20 @@ where
4948
5049 fn next_chunk < const N : usize > (
5150 & mut self ,
52- ) -> Result < [ Self :: Item ; N ] , array:: IntoIter < Self :: Item , N > > {
51+ ) -> Result < [ Self :: Item ; N ] , array:: IntoIter < Self :: Item , N > >
52+ where
53+ Self : Sized ,
54+ {
5355 <I as SpecNextChunk < ' _ , N , T > >:: spec_next_chunk ( & mut self . it )
5456 }
5557
56- #[ inline]
5758 fn size_hint ( & self ) -> ( usize , Option < usize > ) {
5859 self . it . size_hint ( )
5960 }
6061
61- #[ inline]
62- fn count ( self ) -> usize {
63- self . it . count ( )
64- }
65-
66- fn last ( self ) -> Option < T > {
67- self . it . last ( ) . copied ( )
68- }
69-
70- #[ inline]
71- fn advance_by ( & mut self , n : usize ) -> Result < ( ) , NonZero < usize > > {
72- self . it . advance_by ( n)
73- }
74-
75- fn nth ( & mut self , n : usize ) -> Option < T > {
76- self . it . nth ( n) . copied ( )
77- }
78-
7962 fn try_fold < B , F , R > ( & mut self , init : B , f : F ) -> R
8063 where
64+ Self : Sized ,
8165 F : FnMut ( B , Self :: Item ) -> R ,
8266 R : Try < Output = B > ,
8367 {
@@ -91,56 +75,21 @@ where
9175 self . it . fold ( init, copy_fold ( f) )
9276 }
9377
94- fn find < P > ( & mut self , mut predicate : P ) -> Option < Self :: Item >
95- where
96- P : FnMut ( & Self :: Item ) -> bool ,
97- {
98- self . it . find ( move |x| predicate ( & x) ) . copied ( )
99- }
100-
101- fn max_by < F > ( self , mut compare : F ) -> Option < Self :: Item >
102- where
103- F : FnMut ( & Self :: Item , & Self :: Item ) -> Ordering ,
104- {
105- self . it . max_by ( move |& x, & y| compare ( x, y) ) . copied ( )
106- }
107-
108- fn min_by < F > ( self , mut compare : F ) -> Option < Self :: Item >
109- where
110- F : FnMut ( & Self :: Item , & Self :: Item ) -> Ordering ,
111- {
112- self . it . min_by ( move |& x, & y| compare ( x, y) ) . copied ( )
113- }
114-
115- fn cmp < O > ( self , other : O ) -> Ordering
116- where
117- O : IntoIterator < Item = Self :: Item > ,
118- Self :: Item : Ord ,
119- {
120- self . it . cmp_by ( other, |x, y| x. cmp ( & y) )
78+ fn nth ( & mut self , n : usize ) -> Option < T > {
79+ self . it . nth ( n) . copied ( )
12180 }
12281
123- fn partial_cmp < O > ( self , other : O ) -> Option < Ordering >
124- where
125- O : IntoIterator ,
126- Self :: Item : PartialOrd < O :: Item > ,
127- {
128- self . it . partial_cmp_by ( other, |x, y| x. partial_cmp ( & y) )
82+ fn last ( self ) -> Option < T > {
83+ self . it . last ( ) . copied ( )
12984 }
13085
131- fn eq < O > ( self , other : O ) -> bool
132- where
133- O : IntoIterator ,
134- Self :: Item : PartialEq < O :: Item > ,
135- {
136- self . it . eq_by ( other, |x, y| x == & y)
86+ fn count ( self ) -> usize {
87+ self . it . count ( )
13788 }
13889
139- fn is_sorted_by < F > ( self , mut compare : F ) -> bool
140- where
141- F : FnMut ( & Self :: Item , & Self :: Item ) -> bool ,
142- {
143- self . it . is_sorted_by ( move |& x, & y| compare ( x, y) )
90+ #[ inline]
91+ fn advance_by ( & mut self , n : usize ) -> Result < ( ) , NonZero < usize > > {
92+ self . it . advance_by ( n)
14493 }
14594
14695 unsafe fn __iterator_get_unchecked ( & mut self , idx : usize ) -> T
@@ -163,13 +112,9 @@ where
163112 self . it . next_back ( ) . copied ( )
164113 }
165114
166- #[ inline]
167- fn advance_back_by ( & mut self , n : usize ) -> Result < ( ) , NonZero < usize > > {
168- self . it . advance_back_by ( n)
169- }
170-
171115 fn try_rfold < B , F , R > ( & mut self , init : B , f : F ) -> R
172116 where
117+ Self : Sized ,
173118 F : FnMut ( B , Self :: Item ) -> R ,
174119 R : Try < Output = B > ,
175120 {
@@ -183,11 +128,9 @@ where
183128 self . it . rfold ( init, copy_fold ( f) )
184129 }
185130
186- fn rfind < P > ( & mut self , mut predicate : P ) -> Option < Self :: Item >
187- where
188- P : FnMut ( & Self :: Item ) -> bool ,
189- {
190- self . it . rfind ( move |x| predicate ( & x) ) . copied ( )
131+ #[ inline]
132+ fn advance_back_by ( & mut self , n : usize ) -> Result < ( ) , NonZero < usize > > {
133+ self . it . advance_back_by ( n)
191134 }
192135}
193136
@@ -197,12 +140,10 @@ where
197140 I : ExactSizeIterator < Item = & ' a T > ,
198141 T : Copy ,
199142{
200- #[ inline]
201143 fn len ( & self ) -> usize {
202144 self . it . len ( )
203145 }
204146
205- #[ inline]
206147 fn is_empty ( & self ) -> bool {
207148 self . it . is_empty ( )
208149 }
0 commit comments