Skip to main content

TrustedLen

Trait TrustedLen 

Source
pub unsafe trait TrustedLen: Iterator { }
Expand description

Trait for all types which have a known upper-bound.

Functions that receive a TrustedLen iterator can assume that it’s size_hint is exact, and can pre-allocate memory, unroll loops, or otherwise optimize their implementations accordingly.

§Safety

The type which implements this trait must provide an exact Some upper-bound for its size_hint method. Failure to do so can trigger undefined behavior in users of the trait.

Implementations on Foreign Types§

Source§

impl TrustedLen for StepBy<Range<i8>>

Source§

impl TrustedLen for StepBy<Range<i16>>

Source§

impl TrustedLen for StepBy<Range<i32>>

Source§

impl TrustedLen for StepBy<Range<i64>>

Source§

impl TrustedLen for StepBy<Range<u8>>

Source§

impl TrustedLen for StepBy<Range<u16>>

Source§

impl TrustedLen for StepBy<Range<u32>>

Source§

impl TrustedLen for StepBy<Range<u64>>

Source§

impl TrustedLen for StepBy<Range<usize>>

Source§

impl TrustedLen for StepBy<RangeInclusive<i8>>

Source§

impl TrustedLen for StepBy<RangeInclusive<i16>>

Source§

impl TrustedLen for StepBy<RangeInclusive<i32>>

Source§

impl TrustedLen for StepBy<RangeInclusive<i64>>

Source§

impl TrustedLen for StepBy<RangeInclusive<u8>>

Source§

impl TrustedLen for StepBy<RangeInclusive<u16>>

Source§

impl TrustedLen for StepBy<RangeInclusive<u32>>

Source§

impl TrustedLen for StepBy<RangeInclusive<u64>>

Source§

impl TrustedLen for StepBy<RangeInclusive<usize>>

Source§

impl TrustedLen for Range<i8>

Source§

impl TrustedLen for Range<i16>

Source§

impl TrustedLen for Range<i32>

Source§

impl TrustedLen for Range<i64>

Source§

impl TrustedLen for Range<u8>

Source§

impl TrustedLen for Range<u16>

Source§

impl TrustedLen for Range<u32>

Source§

impl TrustedLen for Range<u64>

Source§

impl TrustedLen for Range<usize>

Source§

impl TrustedLen for RangeInclusive<i8>

Source§

impl TrustedLen for RangeInclusive<i16>

Source§

impl TrustedLen for RangeInclusive<i32>

Source§

impl TrustedLen for RangeInclusive<i64>

Source§

impl TrustedLen for RangeInclusive<u8>

Source§

impl TrustedLen for RangeInclusive<u16>

Source§

impl TrustedLen for RangeInclusive<u32>

Source§

impl TrustedLen for RangeInclusive<u64>

Source§

impl TrustedLen for RangeInclusive<usize>

Source§

impl<'a, I, T> TrustedLen for Cloned<I>
where I: TrustedLen<Item = &'a T>, T: Clone + 'a,

Source§

impl<'a, I, T> TrustedLen for Copied<I>
where I: TrustedLen<Item = &'a T>, T: Copy + 'a,

Source§

impl<'a, I, T: 'a, E: 'a> TrustedLen for ProcessResults<'a, I, E>
where I: TrustedLen<Item = Result<T, E>>,

Source§

impl<B, I, F> TrustedLen for Map<I, F>
where I: TrustedLen, F: FnMut(I::Item) -> B,

Source§

impl<I> TrustedLen for Skip<I>
where I: TrustedLen,

Source§

impl<I, T> TrustedLen for Enumerate<I>
where I: TrustedLen<Item = T>,

Source§

impl<T> TrustedLen for IntoIter<T>

Source§

impl<T> TrustedLen for Iter<'_, T>

Source§

impl<T> TrustedLen for IterMut<'_, T>

Source§

impl<T, U> TrustedLen for Zip<T, U>
where T: TrustedLen, U: TrustedLen,

Source§

impl<T, const N: usize> TrustedLen for IntoIter<T, N>

Source§

impl<T: Clone> TrustedLen for RepeatN<T>

Implementors§