@@ -172,61 +172,6 @@ where
172172 }
173173}
174174
175- /// Marker trait for iterators/iterables which have a statically known upper
176- /// bound of the number of items they can produce.
177- ///
178- /// # Safety
179- ///
180- /// Implementations must not yield more elements than indicated by UPPER_BOUND if it is `Some`.
181- /// Used in specializations. Implementations must not be conditional on lifetimes or
182- /// user-implementable traits.
183- #[ rustc_specialization_trait]
184- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
185- unsafe trait BoundedSize {
186- const UPPER_BOUND : Option < NonZero < usize > > = NonZero :: new ( 1 ) ;
187- }
188-
189- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
190- unsafe impl < T > BoundedSize for Option < T > { }
191- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
192- unsafe impl < T > BoundedSize for option:: IntoIter < T > { }
193- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
194- unsafe impl < T , U > BoundedSize for Result < T , U > { }
195- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
196- unsafe impl < T > BoundedSize for result:: IntoIter < T > { }
197- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
198- unsafe impl < T > BoundedSize for Once < T > { }
199- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
200- unsafe impl < T > BoundedSize for OnceWith < T > { }
201- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
202- unsafe impl < T , const N : usize > BoundedSize for [ T ; N ] {
203- const UPPER_BOUND : Option < NonZero < usize > > = NonZero :: new ( N ) ;
204- }
205- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
206- unsafe impl < T , const N : usize > BoundedSize for array:: IntoIter < T , N > {
207- const UPPER_BOUND : Option < NonZero < usize > > = NonZero :: new ( N ) ;
208- }
209- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
210- unsafe impl < I : BoundedSize , P > BoundedSize for Filter < I , P > {
211- const UPPER_BOUND : Option < NonZero < usize > > = I :: UPPER_BOUND ;
212- }
213- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
214- unsafe impl < I : BoundedSize , P > BoundedSize for FilterMap < I , P > {
215- const UPPER_BOUND : Option < NonZero < usize > > = I :: UPPER_BOUND ;
216- }
217- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
218- unsafe impl < I : BoundedSize , F > BoundedSize for Map < I , F > {
219- const UPPER_BOUND : Option < NonZero < usize > > = I :: UPPER_BOUND ;
220- }
221- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
222- unsafe impl < I : BoundedSize > BoundedSize for Copied < I > {
223- const UPPER_BOUND : Option < NonZero < usize > > = I :: UPPER_BOUND ;
224- }
225- #[ unstable( issue = "none" , feature = "inplace_iteration" ) ]
226- unsafe impl < I : BoundedSize > BoundedSize for Cloned < I > {
227- const UPPER_BOUND : Option < NonZero < usize > > = I :: UPPER_BOUND ;
228- }
229-
230175/// An iterator that flattens one level of nesting in an iterator of things
231176/// that can be turned into iterators.
232177///
0 commit comments