Trait 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 Bytes<'_>impl FusedIterator for Bytes<'_>impl FusedIterator for CaseMappingIterimpl FusedIterator for CharIndices<'_>impl FusedIterator for Chars<'_>impl FusedIterator for EncodeUtf16<'_>impl FusedIterator for EncodeWide<'_>impl FusedIterator for EscapeDebugimpl FusedIterator for EscapeDefaultimpl FusedIterator for EscapeDefaultimpl FusedIterator for EscapeUnicodeimpl FusedIterator for IndexRangeimpl FusedIterator for Lines<'_>impl FusedIterator for LinesAny<'_>impl FusedIterator for SplitAsciiWhitespace<'_>impl FusedIterator for SplitWhitespace<'_>impl FusedIterator for ToCasefoldimpl FusedIterator for ToLowercaseimpl FusedIterator for ToTitlecaseimpl FusedIterator for ToUppercaseimpl FusedIterator for Utf8Chunks<'_>impl<'a> FusedIterator for EscapeAscii<'a>impl<'a> FusedIterator for EscapeDebug<'a>impl<'a> FusedIterator for EscapeDefault<'a>impl<'a> FusedIterator for EscapeUnicode<'a>impl<'a> FusedIterator for Source<'a>impl<'a, I, T> FusedIterator for Cloned<I> where I: FusedIterator<Item = &'a T>, T: Clone + 'a,impl<'a, I, T> FusedIterator for Copied<I> where I: FusedIterator<Item = &'a T>, T: Copy + 'a,impl<'a, P> FusedIterator for RMatchIndices<'a, P> where P: Pattern<Searcher<'a>: ReverseSearcher<'a>>,impl<'a, P> FusedIterator for RMatches<'a, P> where P: Pattern<Searcher<'a>: ReverseSearcher<'a>>,impl<'a, P> FusedIterator for RSplit<'a, P> where P: Pattern<Searcher<'a>: ReverseSearcher<'a>>,impl<'a, P> FusedIterator for RSplitN<'a, P> where P: Pattern<Searcher<'a>: ReverseSearcher<'a>>,impl<'a, P> FusedIterator for RSplitTerminator<'a, P> where P: Pattern<Searcher<'a>: ReverseSearcher<'a>>,impl<'a, P: Pattern> FusedIterator for MatchIndices<'a, P>impl<'a, P: Pattern> FusedIterator for Matches<'a, P>impl<'a, P: Pattern> FusedIterator for Split<'a, P>impl<'a, P: Pattern> FusedIterator for SplitInclusive<'a, P>impl<'a, P: Pattern> FusedIterator for SplitN<'a, P>impl<'a, P: Pattern> FusedIterator for SplitTerminator<'a, P>impl<'a, T, P> FusedIterator for RSplitN<'a, T, P> where P: FnMut(&T) -> bool,impl<'a, T, P> FusedIterator for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool,impl<'a, T, P> FusedIterator for SplitN<'a, T, P> where P: FnMut(&T) -> bool,impl<'a, T, P> FusedIterator for SplitNMut<'a, T, P> where P: FnMut(&T) -> bool,impl<'a, T: 'a, P> FusedIterator for ChunkBy<'a, T, P> where P: FnMut(&T, &T) -> bool,impl<'a, T: 'a, P> FusedIterator for ChunkByMut<'a, T, P> where P: FnMut(&T, &T) -> bool,impl<A> FusedIterator for IntoIter<A>impl<A> FusedIterator for Item<A>impl<A> FusedIterator for Iter<'_, A>impl<A> FusedIterator for IterMut<'_, A>impl<A, B> FusedIterator for Chain<A, B> where A: FusedIterator, B: FusedIterator<Item = A::Item>,impl<A, B> FusedIterator for Zip<A, B> where A: FusedIterator, B: FusedIterator,impl<A, F: FnMut() -> A> FusedIterator for RepeatWith<F>impl<A, F: FnOnce() -> A> FusedIterator for OnceWith<F>impl<A: Clone> FusedIterator for Repeat<A>impl<A: Clone> FusedIterator for RepeatN<A>impl<A: FusedIterator> FusedIterator for OptionFlatten<A>impl<A: Step> FusedIterator for Range<A>impl<A: Step> FusedIterator for RangeFrom<A>impl<A: Step> FusedIterator for RangeFromIter<A>impl<A: Step> FusedIterator for RangeInclusive<A>impl<A: Step> FusedIterator for RangeInclusiveIter<A>impl<A: Step> FusedIterator for RangeIter<A>impl<B, I: FusedIterator, F> FusedIterator for FilterMap<I, F> where F: FnMut(I::Item) -> Option<B>,impl<B, I: FusedIterator, F> FusedIterator for Map<I, F> where F: FnMut(I::Item) -> B,impl<I> FusedIterator for Cycle<I> where I: Clone + Iterator,impl<I> FusedIterator for Enumerate<I> where I: FusedIterator,impl<I> FusedIterator for Fuse<I> where I: Iterator,impl<I> FusedIterator for Rev<I> where I: FusedIterator + DoubleEndedIterator,impl<I> FusedIterator for Skip<I> where I: FusedIterator,impl<I> FusedIterator for StepBy<I> where I: FusedIterator,impl<I> FusedIterator for Take<I> where I: FusedIterator,impl<I, F, R, const N: usize> FusedIterator for MapWindows<I, F, N> where I: FusedIterator, F: FnMut(&[I::Item; N]) -> R,impl<I, P> FusedIterator for SkipWhile<I, P> where I: FusedIterator, P: FnMut(&I::Item) -> bool,impl<I, P> FusedIterator for TakeWhile<I, P> where I: FusedIterator, P: FnMut(&I::Item) -> bool,impl<I, U> FusedIterator for Flatten<I> where I: FusedIterator<Item: IntoIterator<IntoIter = U, Item = U::Item>>, U: Iterator,impl<I, U, F> FusedIterator for FlatMap<I, U, F> where I: FusedIterator, U: IntoIterator, F: FnMut(I::Item) -> U,impl<I, const N: usize> FusedIterator for ArrayChunks<I, N> where I: FusedIterator,impl<I: FusedIterator + ?Sized> FusedIterator for &mut Iimpl<I: FusedIterator> FusedIterator for Peekable<I>impl<I: FusedIterator, F> FusedIterator for Inspect<I, F> where F: FnMut(&I::Item),impl<I: FusedIterator, P> FusedIterator for Filter<I, P> where P: FnMut(&I::Item) -> bool,impl<I: Iterator<Item = u16> + FusedIterator> FusedIterator for DecodeUtf16<I>impl<T> FusedIterator for Chunks<'_, T>impl<T> FusedIterator for ChunksExact<'_, T>impl<T> FusedIterator for ChunksExactMut<'_, T>impl<T> FusedIterator for ChunksMut<'_, T>impl<T> FusedIterator for Empty<T>impl<T> FusedIterator for IntoIter<T>impl<T> FusedIterator for Iter<'_, T>impl<T> FusedIterator for Iter<'_, T>impl<T> FusedIterator for IterMut<'_, T>impl<T> FusedIterator for IterMut<'_, T>impl<T> FusedIterator for Once<T>impl<T> FusedIterator for RChunks<'_, T>impl<T> FusedIterator for RChunksExact<'_, T>impl<T> FusedIterator for RChunksExactMut<'_, T>impl<T> FusedIterator for RChunksMut<'_, T>impl<T> FusedIterator for Windows<'_, T>impl<T, F> FusedIterator for Successors<T, F> where F: FnMut(&T) -> Option<T>,impl<T, P> FusedIterator for RSplit<'_, T, P> where P: FnMut(&T) -> bool,impl<T, P> FusedIterator for RSplitMut<'_, T, P> where P: FnMut(&T) -> bool,impl<T, P> FusedIterator for Split<'_, T, P> where P: FnMut(&T) -> bool,impl<T, P> FusedIterator for SplitInclusive<'_, T, P> where P: FnMut(&T) -> bool,impl<T, P> FusedIterator for SplitInclusiveMut<'_, T, P> where P: FnMut(&T) -> bool,impl<T, P> FusedIterator for SplitMut<'_, T, P> where P: FnMut(&T) -> bool,impl<T, const N: usize> FusedIterator for ArrayWindows<'_, T, N>impl<T, const N: usize> FusedIterator for IntoIter<T, N>