std::iter::TrustedLen - Rust
Description: API documentation for the Rust `TrustedLen` trait in crate `std`.
Keywords: rust, rustlang, rust-lang, TrustedLen

# [−][src]Trait std::iter::TrustedLen

    pub unsafe trait TrustedLen: Iterator { }

🔬 This is a nightly-only experimental API. (`trusted_len` #37572)

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`. In that case, the lower bound must be `usize::MAX`, resulting in a `.size_hint` of `(usize::MAX, None)`.

The iterator must produce exactly the number of elements it reported or diverge before reaching the end.

# 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<i16>`[src]

### `impl TrustedLen for Range<i32>`[src]

### `impl TrustedLen for Range<i64>`[src]

### `impl TrustedLen for Range<i8>`[src]

### `impl TrustedLen for Range<isize>`[src]

### `impl TrustedLen for Range<u16>`[src]

### `impl TrustedLen for Range<u32>`[src]

### `impl TrustedLen for Range<u64>`[src]

### `impl TrustedLen for Range<u8>`[src]

### `impl TrustedLen for Range<usize>`[src]

### `impl TrustedLen for RangeInclusive<i16>`[src]

### `impl TrustedLen for RangeInclusive<i32>`[src]

### `impl TrustedLen for RangeInclusive<i64>`[src]

### `impl TrustedLen for RangeInclusive<i8>`[src]

### `impl TrustedLen for RangeInclusive<isize>`[src]

### `impl TrustedLen for RangeInclusive<u16>`[src]

### `impl TrustedLen for RangeInclusive<u32>`[src]

### `impl TrustedLen for RangeInclusive<u64>`[src]

### `impl TrustedLen for RangeInclusive<u8>`[src]

### `impl TrustedLen for RangeInclusive<usize>`[src]

### `impl<'_> TrustedLen for Bytes<'_>`[src]

### `impl<'_, A> TrustedLen for std::option::Iter<'_, A>`[src]

### `impl<'_, A> TrustedLen for std::option::IterMut<'_, A>`[src]

### `impl<'_, A> TrustedLen for std::result::Iter<'_, A>`[src]

### `impl<'_, A> TrustedLen for std::result::IterMut<'_, A>`[src]

### `impl<'_, I> TrustedLen for &'_ mut I where
I: TrustedLen + ?Sized,` [src]

### `impl<'_, T> TrustedLen for Chunks<'_, T>`[src]

### `impl<'_, T> TrustedLen for ChunksExact<'_, T>`[src]

### `impl<'_, T> TrustedLen for ChunksExactMut<'_, T>`[src]

### `impl<'_, T> TrustedLen for ChunksMut<'_, T>`[src]

### `impl<'_, T> TrustedLen for Windows<'_, T>`[src]

### `impl<'a, I, T> TrustedLen for Cloned<I> where
I: TrustedLen<Item = &'a T>,
T: 'a + Clone,` [src]

### `impl<'a, I, T> TrustedLen for Copied<I> where
I: TrustedLen<Item = &'a T>,
T: 'a + Copy,` [src]

### `impl<'a, T> TrustedLen for std::slice::Iter<'a, T>`[src]

### `impl<'a, T> TrustedLen for std::slice::IterMut<'a, T>`[src]

### `impl<'a, T> TrustedLen for RChunks<'a, T>`[src]

### `impl<'a, T> TrustedLen for RChunksExact<'a, T>`[src]

### `impl<'a, T> TrustedLen for RChunksExactMut<'a, T>`[src]

### `impl<'a, T> TrustedLen for RChunksMut<'a, T>`[src]

### `impl<A> TrustedLen for Repeat<A> where
A: Clone,` [src]

### `impl<A> TrustedLen for RangeFrom<A> where
A: Step,` [src]

### `impl<A> TrustedLen for std::option::IntoIter<A>`[src]

### `impl<A> TrustedLen for std::result::IntoIter<A>`[src]

### `impl<A, B> TrustedLen for Chain<A, B> where
A: TrustedLen,
B: TrustedLen<Item = <A as Iterator>::Item>,` [src]

### `impl<A, B> TrustedLen for Zip<A, B> where
A: TrustedLen,
B: TrustedLen,` [src]

### `impl<A, F> TrustedLen for OnceWith<F> where
F: FnOnce() -> A,` [src]

### `impl<A, F> TrustedLen for RepeatWith<F> where
F: FnMut() -> A,` [src]

### `impl<B, I, F> TrustedLen for Map<I, F> where
F: FnMut(<I as Iterator>::Item) -> B,
I: TrustedLen,` [src]

### `impl<I> TrustedLen for Enumerate<I> where
I: TrustedLen,` [src]

### `impl<I> TrustedLen for Rev<I> where
I: TrustedLen + DoubleEndedIterator,` [src]

### `impl<I> TrustedLen for Take<I> where
I: TrustedLen,` [src]

### `impl<T> TrustedLen for Empty<T>`[src]

### `impl<T> TrustedLen for Once<T>`[src]

### `impl<T> TrustedLen for std::vec::IntoIter<T>`[src]

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)