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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

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§