# [−][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<'a> TrustedLen for Bytes<'a>`

[src]

###

`impl<'a, A> TrustedLen for std::option::Iter<'a, A>`

[src]

###

`impl<'a, A> TrustedLen for std::option::IterMut<'a, A>`

[src]

###

`impl<'a, A> TrustedLen for std::result::Iter<'a, A>`

[src]

###

`impl<'a, A> TrustedLen for std::result::IterMut<'a, A>`

[src]

###

`impl<'a, I> TrustedLen for &'a mut I where I: TrustedLen + ?Sized,`

[src]

###

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

[src]

###

`impl<'a, T> TrustedLen for Chunks<'a, T>`

[src]

###

`impl<'a, T> TrustedLen for ChunksMut<'a, T>`

[src]

###

`impl<'a, T> TrustedLen for ExactChunks<'a, T>`

[src]

###

`impl<'a, T> TrustedLen for ExactChunksMut<'a, T>`

[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 Windows<'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 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]

# 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`)