Trait core::iter::TrustedLen
[−]
[src]
pub unsafe trait TrustedLen: Iterator { }
An iterator that reports an accurate length using size_hint.
The iterator reports a size hint where it is either exact
(lower bound is equal to upper bound), or the upper bound is None
.
The upper bound must only be None
if the actual iterator length is
larger than usize::MAX
.
The iterator must produce exactly the number of elements it reported.
Safety
This trait must only be implemented when the contract is upheld.
Consumers of this trait must inspect .size_hint
’s upper bound.
Implementors
impl TrustedLen for Range<usize>
impl TrustedLen for Range<isize>
impl TrustedLen for Range<u8>
impl TrustedLen for Range<i8>
impl TrustedLen for Range<u16>
impl TrustedLen for Range<i16>
impl TrustedLen for Range<u32>
impl TrustedLen for Range<i32>
impl TrustedLen for Range<i64>
impl TrustedLen for Range<u64>
impl TrustedLen for RangeInclusive<usize>
impl TrustedLen for RangeInclusive<isize>
impl TrustedLen for RangeInclusive<u8>
impl TrustedLen for RangeInclusive<i8>
impl TrustedLen for RangeInclusive<u16>
impl TrustedLen for RangeInclusive<i16>
impl TrustedLen for RangeInclusive<u32>
impl TrustedLen for RangeInclusive<i32>
impl TrustedLen for RangeInclusive<i64>
impl TrustedLen for RangeInclusive<u64>
impl<T> TrustedLen for Empty<T>
impl<T> TrustedLen for Once<T>
impl<'a, I: TrustedLen + ?Sized> TrustedLen for &'a mut I
impl<I> TrustedLen for Rev<I> where
I: TrustedLen + DoubleEndedIterator,impl<'a, I, T: 'a> TrustedLen for Cloned<I> where
I: TrustedLen<Item = &'a T>,
T: Clone,impl<A, B> TrustedLen for Chain<A, B> where
A: TrustedLen,
B: TrustedLen<Item = A::Item>,impl<A, B> TrustedLen for Zip<A, B> where
A: TrustedLen,
B: TrustedLen,impl<B, I, F> TrustedLen for Map<I, F> where
I: TrustedLen,
F: FnMut(I::Item) -> B,impl<I> TrustedLen for Enumerate<I> where
I: TrustedLen,impl<'a, A> TrustedLen for core::option::Iter<'a, A>
impl<'a, A> TrustedLen for core::option::IterMut<'a, A>
impl<A> TrustedLen for core::option::IntoIter<A>
impl<'a, A> TrustedLen for core::result::Iter<'a, A>
impl<'a, A> TrustedLen for core::result::IterMut<'a, A>
impl<A> TrustedLen for core::result::IntoIter<A>
impl<'a, T> TrustedLen for core::slice::Iter<'a, T>
impl<'a, T> TrustedLen for core::slice::IterMut<'a, T>
impl<'a> TrustedLen for Bytes<'a>