# Trait core::iter::FusedIterator 1.26.0[−][src]

    pub trait FusedIterator: Iterator { }

An iterator that always continues to yield `None` when exhausted.

Calling next on a fused iterator that has returned `None` once is guaranteed to return `None` again. This trait should be implemented by all iterators that behave this way because it allows for some significant optimizations.

Note: In general, you should not use `FusedIterator` in generic bounds if you need a fused iterator. Instead, you should just call `Iterator::fuse` on the iterator. If the iterator is already fused, the additional `Fuse` wrapper will be a no-op with no performance penalty.

## Implementors

- `impl FusedIterator for core::ascii::EscapeDefault` | [src]

- `impl<I: FusedIterator<Item = u8>> FusedIterator for DecodeUtf8<I>` | [src]

- `impl FusedIterator for EscapeUnicode` | [src]

- `impl FusedIterator for core::char::EscapeDefault` | [src]

- `impl FusedIterator for EscapeDebug` | [src]

- `impl FusedIterator for ToLowercase` | [src]

- `impl FusedIterator for ToUppercase` | [src]

- `impl<A: Step> FusedIterator for Range<A>` | [src]

- `impl<A: Step> FusedIterator for RangeFrom<A>` | [src]

- `impl<A: Step> FusedIterator for RangeInclusive<A>` | [src]

- `impl<A: Clone> FusedIterator for Repeat<A>` | [src]

- `impl<A, F: FnMut() -> A> FusedIterator for RepeatWith<F>` | [src]

- `impl<T> FusedIterator for Empty<T>` | [src]

- `impl<T> FusedIterator for Once<T>` | [src]

- `impl<'a, I: FusedIterator + ?Sized> FusedIterator for &'a mut I` | [src]

- `impl<I> FusedIterator for Rev<I> where I: FusedIterator + DoubleEndedIterator,` | [src]

- `impl<'a, I, T: 'a> FusedIterator for Cloned<I> where I: FusedIterator<Item = &'a T>, T: Clone,` | [src]

- `impl<I> FusedIterator for Cycle<I> where I: Clone + Iterator,` | [src]

- `impl<A, B> FusedIterator for Chain<A, B> where A: FusedIterator, B: FusedIterator<Item = A::Item>,` | [src]

- `impl<A, B> FusedIterator for Zip<A, B> where A: FusedIterator, B: FusedIterator,` | [src]

- `impl<B, I: FusedIterator, F> FusedIterator for Map<I, F> where F: FnMut(I::Item) -> B,` | [src]

- `impl<I: FusedIterator, P> FusedIterator for Filter<I, P> where P: FnMut(&I::Item) -> bool,` | [src]

- `impl<B, I: FusedIterator, F> FusedIterator for FilterMap<I, F> where F: FnMut(I::Item) -> Option<B>,` | [src]

- `impl<I> FusedIterator for Enumerate<I> where I: FusedIterator,` | [src]

- `impl<I: FusedIterator> FusedIterator for Peekable<I>` | [src]

- `impl<I, P> FusedIterator for SkipWhile<I, P> where I: FusedIterator, P: FnMut(&I::Item) -> bool,` | [src]

- `impl<I, P> FusedIterator for TakeWhile<I, P> where I: FusedIterator, P: FnMut(&I::Item) -> bool,` | [src]

- `impl<I> FusedIterator for Skip<I> where I: FusedIterator,` | [src]

- `impl<I> FusedIterator for Take<I> where I: FusedIterator,` | [src]

- `impl<I, U, F> FusedIterator for FlatMap<I, U, F> where I: FusedIterator, U: IntoIterator, F: FnMut(I::Item) -> U,` | [src]

- `impl<I, U> FusedIterator for Flatten<I> where I: FusedIterator, U: Iterator, I::Item: IntoIterator<IntoIter = U, Item = U::Item>,` | [src]

- `impl<I> FusedIterator for Fuse<I> where I: Iterator,` | [src]

- `impl<I: FusedIterator, F> FusedIterator for Inspect<I, F> where F: FnMut(&I::Item),` | [src]

- `impl<'a, A> FusedIterator for core::option::Iter<'a, A>` | [src]

- `impl<'a, A> FusedIterator for core::option::IterMut<'a, A>` | [src]

- `impl<A> FusedIterator for core::option::IntoIter<A>` | [src]

- `impl<'a, T> FusedIterator for core::result::Iter<'a, T>` | [src]

- `impl<'a, T> FusedIterator for core::result::IterMut<'a, T>` | [src]

- `impl<T> FusedIterator for core::result::IntoIter<T>` | [src]

- `impl<'a, T> FusedIterator for core::slice::Iter<'a, T>` | [src]

- `impl<'a, T> FusedIterator for core::slice::IterMut<'a, T>` | [src]

- `impl<'a, T, P> FusedIterator for core::slice::Split<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for SplitMut<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for core::slice::RSplit<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for RSplitMut<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for core::slice::SplitN<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for core::slice::RSplitN<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for SplitNMut<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T, P> FusedIterator for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool,` | [src]

- `impl<'a, T> FusedIterator for Windows<'a, T>` | [src]

- `impl<'a, T> FusedIterator for Chunks<'a, T>` | [src]

- `impl<'a, T> FusedIterator for ChunksMut<'a, T>` | [src]

- `impl<'a, T> FusedIterator for ExactChunks<'a, T>` | [src]

- `impl<'a, T> FusedIterator for ExactChunksMut<'a, T>` | [src]

- `impl<'a> FusedIterator for Chars<'a>` | [src]

- `impl<'a> FusedIterator for CharIndices<'a>` | [src]

- `impl<'a> FusedIterator for Bytes<'a>` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for core::str::Split<'a, P>` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for core::str::RSplit<'a, P> where P::Searcher: ReverseSearcher<'a>,` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for SplitTerminator<'a, P>` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for RSplitTerminator<'a, P> where P::Searcher: ReverseSearcher<'a>,` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for core::str::SplitN<'a, P>` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for core::str::RSplitN<'a, P> where P::Searcher: ReverseSearcher<'a>,` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for MatchIndices<'a, P>` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for RMatchIndices<'a, P> where P::Searcher: ReverseSearcher<'a>,` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for Matches<'a, P>` | [src]

- `impl<'a, P: Pattern<'a>> FusedIterator for RMatches<'a, P> where P::Searcher: ReverseSearcher<'a>,` | [src]

- `impl<'a> FusedIterator for Lines<'a>` | [src]

- `impl<'a> FusedIterator for LinesAny<'a>` | [src]

- `impl<'a> FusedIterator for SplitWhitespace<'a>` | [src]

- `impl<'a> FusedIterator for SplitAsciiWhitespace<'a>` | [src]

- `impl<'a> FusedIterator for EncodeUtf16<'a>` | [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`)