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

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

    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 optimizing `Iterator::fuse`.

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 std::ascii::EscapeDefault`

[src]

###

`impl FusedIterator for EscapeDebug`

[src]

###

`impl FusedIterator for std::char::EscapeDefault`

[src]

###

`impl FusedIterator for EscapeUnicode`

[src]

###

`impl FusedIterator for ToLowercase`

[src]

###

`impl FusedIterator for ToUppercase`

[src]

###

`impl<'_> FusedIterator for Bytes<'_>`

[src]

###

`impl<'_> FusedIterator for CharIndices<'_>`

[src]

###

`impl<'_> FusedIterator for Chars<'_>`

[src]

###

`impl<'_> FusedIterator for EncodeUtf16<'_>`

[src]

###

`impl<'_> FusedIterator for Lines<'_>`

[src]

###

`impl<'_> FusedIterator for LinesAny<'_>`

[src]

###

`impl<'_> FusedIterator for SplitAsciiWhitespace<'_>`

[src]

###

`impl<'_> FusedIterator for SplitWhitespace<'_>`

[src]

###

`impl<'_, A> FusedIterator for std::option::Iter<'_, A>`

[src]

###

`impl<'_, A> FusedIterator for std::option::IterMut<'_, A>`

[src]

###

`impl<'_, I> FusedIterator for &'_ mut I where I: FusedIterator + ?Sized,`

[src]

###

`impl<'_, T> FusedIterator for std::result::Iter<'_, T>`

[src]

###

`impl<'_, T> FusedIterator for std::result::IterMut<'_, T>`

[src]

###

`impl<'_, T> FusedIterator for Chunks<'_, T>`

[src]

###

`impl<'_, T> FusedIterator for ChunksExact<'_, T>`

[src]

###

`impl<'_, T> FusedIterator for ChunksExactMut<'_, T>`

[src]

###

`impl<'_, T> FusedIterator for ChunksMut<'_, T>`

[src]

###

`impl<'_, T> FusedIterator for Windows<'_, T>`

[src]

###

`impl<'_, T, P> FusedIterator for std::slice::RSplit<'_, T, P> where P: FnMut(&T) -> bool,`

[src]

###

`impl<'_, T, P> FusedIterator for RSplitMut<'_, T, P> where P: FnMut(&T) -> bool,`

[src]

###

`impl<'_, T, P> FusedIterator for std::slice::Split<'_, T, P> where P: FnMut(&T) -> bool,`

[src]

###

`impl<'_, T, P> FusedIterator for SplitMut<'_, T, P> where P: FnMut(&T) -> bool,`

[src]

###

`impl<'a> FusedIterator for Ancestors<'a>`

[src]

###

`impl<'a> FusedIterator for Components<'a>`

[src]

###

`impl<'a> FusedIterator for std::path::Iter<'a>`

[src]

###

`impl<'a> FusedIterator for std::string::Drain<'a>`

[src]

###

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

[src]

###

`impl<'a, K> FusedIterator for std::collections::hash_set::Drain<'a, K>`

[src]

###

`impl<'a, K> FusedIterator for std::collections::hash_set::Iter<'a, K>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::btree_map::Iter<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::btree_map::IterMut<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::btree_map::Keys<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::btree_map::Range<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for RangeMut<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::btree_map::Values<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::btree_map::ValuesMut<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::hash_map::Drain<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::hash_map::Iter<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::hash_map::IterMut<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::hash_map::Keys<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::hash_map::Values<'a, K, V>`

[src]

###

`impl<'a, K, V> FusedIterator for std::collections::hash_map::ValuesMut<'a, K, V>`

[src]

###

`impl<'a, P> FusedIterator for MatchIndices<'a, P> where P: Pattern<'a>,`

[src]

###

`impl<'a, P> FusedIterator for Matches<'a, P> where P: Pattern<'a>,`

[src]

###

`impl<'a, P> FusedIterator for RMatchIndices<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,`

[src]

###

`impl<'a, P> FusedIterator for RMatches<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,`

[src]

###

`impl<'a, P> FusedIterator for std::str::RSplit<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,`

[src]

###

`impl<'a, P> FusedIterator for std::str::RSplitN<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,`

[src]

###

`impl<'a, P> FusedIterator for RSplitTerminator<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,`

[src]

###

`impl<'a, P> FusedIterator for std::str::Split<'a, P> where P: Pattern<'a>,`

[src]

###

`impl<'a, P> FusedIterator for std::str::SplitN<'a, P> where P: Pattern<'a>,`

[src]

###

`impl<'a, P> FusedIterator for SplitTerminator<'a, P> where P: Pattern<'a>,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::binary_heap::Drain<'a, T> where T: 'a,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::binary_heap::Iter<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::collections::btree_set::Difference<'a, T> where T: Ord,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::btree_set::Intersection<'a, T> where T: Ord,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::btree_set::Iter<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::collections::btree_set::Range<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::collections::btree_set::SymmetricDifference<'a, T> where T: Ord,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::btree_set::Union<'a, T> where T: Ord,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::linked_list::Iter<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::collections::linked_list::IterMut<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::collections::vec_deque::Drain<'a, T> where T: 'a,`

[src]

###

`impl<'a, T> FusedIterator for std::collections::vec_deque::Iter<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::collections::vec_deque::IterMut<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::slice::Iter<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::slice::IterMut<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for RChunks<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for RChunksExact<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for RChunksExactMut<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for RChunksMut<'a, T>`

[src]

###

`impl<'a, T> FusedIterator for std::vec::Drain<'a, T>`

[src]

###

`impl<'a, T, P> FusedIterator for std::slice::RSplitN<'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, P> FusedIterator for std::slice::SplitN<'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, S> FusedIterator for std::collections::hash_set::Difference<'a, T, S> where T: Eq + Hash, S: BuildHasher,`

[src]

###

`impl<'a, T, S> FusedIterator for std::collections::hash_set::Intersection<'a, T, S> where T: Eq + Hash, S: BuildHasher,`

[src]

###

`impl<'a, T, S> FusedIterator for std::collections::hash_set::SymmetricDifference<'a, T, S> where T: Eq + Hash, S: BuildHasher,`

[src]

###

`impl<'a, T, S> FusedIterator for std::collections::hash_set::Union<'a, T, S> where T: Eq + Hash, S: BuildHasher,`

[src]

###

`impl<A> FusedIterator for Repeat<A> where A: Clone,`

[src]

###

`impl<A> FusedIterator for std::ops::Range<A> where A: Step,`

[src]

###

`impl<A> FusedIterator for RangeFrom<A> where A: Step,`

[src]

###

`impl<A> FusedIterator for RangeInclusive<A> where A: Step,`

[src]

###

`impl<A> FusedIterator for std::option::IntoIter<A>`

[src]

###

`impl<A, B> FusedIterator for Chain<A, B> where A: FusedIterator, B: FusedIterator<Item = <A as Iterator>::Item>,`

[src]

###

`impl<A, B> FusedIterator for Zip<A, B> where A: FusedIterator, B: FusedIterator,`

[src]

###

`impl<A, F> FusedIterator for RepeatWith<F> where F: FnMut() -> A,`

[src]

###

`impl<B, I, F> FusedIterator for FilterMap<I, F> where F: FnMut(<I as Iterator>::Item) -> Option<B>, I: FusedIterator,`

[src]

###

`impl<B, I, F> FusedIterator for Map<I, F> where F: FnMut(<I as Iterator>::Item) -> B, I: FusedIterator,`

[src]

###

`impl<I> FusedIterator for Box<I> where I: FusedIterator + ?Sized,`

[src]

###

`impl<I> FusedIterator for Cycle<I> where I: Clone + Iterator,`

[src]

###

`impl<I> FusedIterator for Enumerate<I> where I: FusedIterator,`

[src]

###

`impl<I> FusedIterator for Fuse<I> where I: Iterator,`

[src]

###

`impl<I> FusedIterator for Peekable<I> where I: FusedIterator,`

[src]

###

`impl<I> FusedIterator for Rev<I> where I: FusedIterator + DoubleEndedIterator,`

[src]

###

`impl<I> FusedIterator for Skip<I> where I: FusedIterator,`

[src]

###

`impl<I> FusedIterator for Take<I> where I: FusedIterator,`

[src]

###

`impl<I, F> FusedIterator for Inspect<I, F> where F: FnMut(&<I as Iterator>::Item), I: FusedIterator,`

[src]

###

`impl<I, P> FusedIterator for Filter<I, P> where I: FusedIterator, P: FnMut(&<I as Iterator>::Item) -> bool,`

[src]

###

`impl<I, P> FusedIterator for SkipWhile<I, P> where I: FusedIterator, P: FnMut(&<I as Iterator>::Item) -> bool,`

[src]

###

`impl<I, P> FusedIterator for TakeWhile<I, P> where I: FusedIterator, P: FnMut(&<I as Iterator>::Item) -> bool,`

[src]

###

`impl<I, U> FusedIterator for Flatten<I> where I: FusedIterator, U: Iterator, <I as Iterator>::Item: IntoIterator, <<I as Iterator>::Item as IntoIterator>::IntoIter == U, <<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item,`

[src]

###

`impl<I, U, F> FusedIterator for FlatMap<I, U, F> where F: FnMut(<I as Iterator>::Item) -> U, I: FusedIterator, U: IntoIterator,`

[src]

###

`impl<K> FusedIterator for std::collections::hash_set::IntoIter<K>`

[src]

###

`impl<K, V> FusedIterator for std::collections::btree_map::IntoIter<K, V>`

[src]

###

`impl<K, V> FusedIterator for std::collections::hash_map::IntoIter<K, V>`

[src]

###

`impl<T> FusedIterator for std::collections::binary_heap::IntoIter<T>`

[src]

###

`impl<T> FusedIterator for std::collections::btree_set::IntoIter<T>`

[src]

###

`impl<T> FusedIterator for std::collections::linked_list::IntoIter<T>`

[src]

###

`impl<T> FusedIterator for std::collections::vec_deque::IntoIter<T>`

[src]

###

`impl<T> FusedIterator for Empty<T>`

[src]

###

`impl<T> FusedIterator for Once<T>`

[src]

###

`impl<T> FusedIterator for std::result::IntoIter<T>`

[src]

###

`impl<T> FusedIterator for std::vec::IntoIter<T>`

[src]

###

`impl<T, F> FusedIterator for Successors<T, F> where F: FnMut(&T) -> Option<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`)