Trait std::iter::FusedIterator
[−]
[src]
pub trait FusedIterator: Iterator { }
🔬 This is a nightly-only experimental API. (
fused
)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 is 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<I> FusedIterator for Box<I> where I: FusedIterator + ?Sized
impl<I> FusedIterator for Utf16Encoder<I> where I: FusedIterator<Item=char>
impl<'a> FusedIterator for SplitWhitespace<'a>
impl FusedIterator for ToLowercase
impl FusedIterator for ToUppercase
impl FusedIterator for EscapeUnicode
impl FusedIterator for std::char::EscapeDefault
impl FusedIterator for EscapeDebug
impl<I> FusedIterator for DecodeUtf8<I> where I: FusedIterator<Item=u8>
impl<A> FusedIterator for std::iter::StepBy<A, RangeFrom<A>> where A: Clone,
&'a A: Add<&'a A>,
&'a A::Output == Aimpl<A> FusedIterator for std::iter::StepBy<A, Range<A>> where A: Clone + Step
impl<A> FusedIterator for std::iter::StepBy<A, RangeInclusive<A>> where A: Clone + Step
impl<A> FusedIterator for std::ops::Range<A> where A: Step,
&'a A: Add<&'a A>,
&'a A::Output == Aimpl<A> FusedIterator for RangeFrom<A> where A: Step,
&'a A: Add<&'a A>,
&'a A::Output == Aimpl<A> FusedIterator for RangeInclusive<A> where A: Step,
&'a A: Add<&'a A>,
&'a A::Output == Aimpl<A> FusedIterator for Repeat<A> where A: Clone
impl<T> FusedIterator for Empty<T>
impl<T> FusedIterator for Once<T>
impl<'a, I> FusedIterator for &'a mut I where I: FusedIterator + ?Sized
impl<I> FusedIterator for Rev<I> where I: FusedIterator + DoubleEndedIterator
impl<'a, I, T> FusedIterator for Cloned<I> where I: FusedIterator<Item=&'a T>,
T: 'a + Cloneimpl<I> FusedIterator for Cycle<I> where I: Clone + Iterator
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<B, I, F> FusedIterator for Map<I, F> where F: FnMut(I::Item) -> B,
I: FusedIteratorimpl<I, P> FusedIterator for Filter<I, P> where I: FusedIterator,
P: FnMut(&I::Item) -> boolimpl<B, I, F> FusedIterator for FilterMap<I, F> where F: FnMut(I::Item) -> Option<B>,
I: FusedIteratorimpl<I> FusedIterator for Enumerate<I> where I: FusedIterator
impl<I> FusedIterator for Peekable<I> where I: FusedIterator
impl<I, P> FusedIterator for SkipWhile<I, P> where I: FusedIterator,
P: FnMut(&I::Item) -> boolimpl<I, P> FusedIterator for TakeWhile<I, P> where I: FusedIterator,
P: FnMut(&I::Item) -> boolimpl<I> FusedIterator for Skip<I> where I: FusedIterator
impl<I> FusedIterator for Take<I> where I: FusedIterator
impl<B, I, St, F> FusedIterator for Scan<I, St, F> where F: FnMut(&mut St, I::Item) -> Option<B>,
I: FusedIteratorimpl<I, U, F> FusedIterator for FlatMap<I, U, F> where F: FnMut(I::Item) -> U,
I: FusedIterator,
U: IntoIteratorimpl<I> FusedIterator for Fuse<I> where I: Iterator
impl<I, F> FusedIterator for Inspect<I, F> where F: FnMut(&I::Item) -> (),
I: FusedIteratorimpl<'a, A> FusedIterator for std::option::Iter<'a, A>
impl<'a, A> FusedIterator for std::option::IterMut<'a, A>
impl<A> FusedIterator for std::option::IntoIter<A>
impl<'a, T> FusedIterator for std::result::Iter<'a, T>
impl<'a, T> FusedIterator for std::result::IterMut<'a, T>
impl<T> FusedIterator for std::result::IntoIter<T>
impl<'a, T> FusedIterator for std::slice::Iter<'a, T>
impl<'a, T> FusedIterator for std::slice::IterMut<'a, T>
impl<'a, T, P> FusedIterator for std::slice::Split<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> FusedIterator for SplitMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T> FusedIterator for Windows<'a, T>
impl<'a, T> FusedIterator for Chunks<'a, T>
impl<'a, T> FusedIterator for ChunksMut<'a, T>
impl<'a> FusedIterator for Chars<'a>
impl<'a> FusedIterator for CharIndices<'a>
impl<'a> FusedIterator for Bytes<'a>
impl<'a> FusedIterator for Lines<'a>
impl<'a> FusedIterator for LinesAny<'a>
impl<'a, T, P> FusedIterator for std::slice::SplitN<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> FusedIterator for std::slice::RSplitN<'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, P> FusedIterator for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, P> FusedIterator for std::str::Split<'a, P> where P: Pattern<'a>
impl<'a, P> FusedIterator for RSplit<'a, P> where P: Pattern<'a>,
P::Searcher: ReverseSearcher<'a>impl<'a, P> FusedIterator for SplitTerminator<'a, P> where P: Pattern<'a>
impl<'a, P> FusedIterator for RSplitTerminator<'a, P> where P: Pattern<'a>,
P::Searcher: ReverseSearcher<'a>impl<'a, P> FusedIterator for std::str::SplitN<'a, P> where P: Pattern<'a>
impl<'a, P> FusedIterator for std::str::RSplitN<'a, P> where P: Pattern<'a>,
P::Searcher: ReverseSearcher<'a>impl<'a, P> FusedIterator for MatchIndices<'a, P> where P: Pattern<'a>
impl<'a, P> FusedIterator for RMatchIndices<'a, P> where P: Pattern<'a>,
P::Searcher: ReverseSearcher<'a>impl<'a, P> FusedIterator for Matches<'a, P> where P: Pattern<'a>
impl<'a, P> FusedIterator for RMatches<'a, P> where P: Pattern<'a>,
P::Searcher: ReverseSearcher<'a>impl<'a, T> FusedIterator for std::collections::binary_heap::Iter<'a, T>
impl<T> FusedIterator for std::collections::binary_heap::IntoIter<T>
impl<'a, T> FusedIterator for std::collections::binary_heap::Drain<'a, T> where T: 'a
impl<'a, K, V> FusedIterator for std::collections::btree_map::Iter<'a, K, V>
impl<'a, K, V> FusedIterator for std::collections::btree_map::IterMut<'a, K, V>
impl<K, V> FusedIterator for std::collections::btree_map::IntoIter<K, V>
impl<'a, K, V> FusedIterator for Keys<'a, K, V>
impl<'a, K, V> FusedIterator for Values<'a, K, V>
impl<'a, K, V> FusedIterator for ValuesMut<'a, K, V>
impl<'a, K, V> FusedIterator for std::collections::btree_map::Range<'a, K, V>
impl<'a, K, V> FusedIterator for RangeMut<'a, K, V>
impl<'a, T> FusedIterator for std::collections::btree_set::Iter<'a, T>
impl<T> FusedIterator for std::collections::btree_set::IntoIter<T>
impl<'a, T> FusedIterator for std::collections::btree_set::Range<'a, T>
impl<'a, T> FusedIterator for Difference<'a, T> where T: Ord
impl<'a, T> FusedIterator for SymmetricDifference<'a, T> where T: Ord
impl<'a, T> FusedIterator for Intersection<'a, T> where T: Ord
impl<'a, T> FusedIterator for Union<'a, T> where T: Ord
impl<E> FusedIterator for collections::enum_set::Iter<E> where E: CLike
impl<'a, T> FusedIterator for std::collections::linked_list::Iter<'a, T>
impl<'a, T> FusedIterator for std::collections::linked_list::IterMut<'a, T>
impl<T> FusedIterator for std::collections::linked_list::IntoIter<T>
impl<'a> FusedIterator for EncodeUtf16<'a>
impl<'a> FusedIterator for std::string::Drain<'a>
impl<T> FusedIterator for std::vec::IntoIter<T>
impl<'a, T> FusedIterator for std::vec::Drain<'a, T>
impl<'a, T> FusedIterator for std::collections::vec_deque::Iter<'a, T>
impl<'a, T> FusedIterator for std::collections::vec_deque::IterMut<'a, T>
impl<T> FusedIterator for std::collections::vec_deque::IntoIter<T>
impl<'a, T> FusedIterator for std::collections::vec_deque::Drain<'a, T> where T: 'a
impl FusedIterator for std::ascii::EscapeDefault
impl<'a> FusedIterator for std::path::Iter<'a>
impl<'a> FusedIterator for Components<'a>