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