Trait std_tools::protected::iter::dependency::itertools::__std_iter::FusedIterator
1.26.0 · source · [−]pub trait FusedIterator: Iterator { }
Expand description
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_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::SetMatchesIntoIter
impl FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::SetMatchesIntoIter
impl FusedIterator for core::ascii::EscapeDefault
impl FusedIterator for core::char::EscapeDebug
impl FusedIterator for core::char::EscapeDefault
impl FusedIterator for core::char::EscapeUnicode
impl FusedIterator for ToLowercase
impl FusedIterator for ToUppercase
impl FusedIterator for Utf8Sequences
impl<'_> FusedIterator for alloc::string::Drain<'_>
impl<'_> FusedIterator for Bytes<'_>
impl<'_> FusedIterator for CharIndices<'_>
impl<'_> FusedIterator for Chars<'_>
impl<'_> FusedIterator for EncodeUtf16<'_>
impl<'_> FusedIterator for Lines<'_>
impl<'_> FusedIterator for LinesAny<'_>
impl<'_> FusedIterator for SplitAsciiWhitespace<'_>
impl<'_> FusedIterator for SplitWhitespace<'_>
impl<'_> FusedIterator for Ancestors<'_>
impl<'_> FusedIterator for Components<'_>
impl<'_> FusedIterator for std::path::Iter<'_>
impl<'_, A> FusedIterator for core::option::Iter<'_, A>
impl<'_, A> FusedIterator for core::option::IterMut<'_, A>
impl<'_, I> FusedIterator for &mut I where
I: FusedIterator + ?Sized,
impl<'_, K> FusedIterator for std::collections::hash::set::Drain<'_, K>
impl<'_, K> FusedIterator for std::collections::hash::set::Iter<'_, K>
impl<'_, K, F> FusedIterator for std::collections::hash::set::DrainFilter<'_, K, F> where
F: for<'_> FnMut(&K) -> bool,
impl<'_, K, V> FusedIterator for alloc::collections::btree::map::Iter<'_, K, V>
impl<'_, K, V> FusedIterator for alloc::collections::btree::map::IterMut<'_, K, V>
impl<'_, K, V> FusedIterator for alloc::collections::btree::map::Keys<'_, K, V>
impl<'_, K, V> FusedIterator for alloc::collections::btree::map::Range<'_, K, V>
impl<'_, K, V> FusedIterator for RangeMut<'_, K, V>
impl<'_, K, V> FusedIterator for alloc::collections::btree::map::Values<'_, K, V>
impl<'_, K, V> FusedIterator for alloc::collections::btree::map::ValuesMut<'_, K, V>
impl<'_, K, V> FusedIterator for std::collections::hash::map::Drain<'_, K, V>
impl<'_, K, V> FusedIterator for std::collections::hash::map::Iter<'_, K, V>
impl<'_, K, V> FusedIterator for std::collections::hash::map::IterMut<'_, K, V>
impl<'_, K, V> FusedIterator for std::collections::hash::map::Keys<'_, K, V>
impl<'_, K, V> FusedIterator for std::collections::hash::map::Values<'_, K, V>
impl<'_, K, V> FusedIterator for std::collections::hash::map::ValuesMut<'_, K, V>
impl<'_, K, V, F> FusedIterator for alloc::collections::btree::map::DrainFilter<'_, K, V, F, Global> where
F: for<'_, '_> FnMut(&K, &mut V) -> bool,
impl<'_, K, V, F> FusedIterator for std::collections::hash::map::DrainFilter<'_, K, V, F> where
F: for<'_, '_> FnMut(&K, &mut V) -> bool,
impl<'_, T> FusedIterator for alloc::collections::binary_heap::Drain<'_, T>
impl<'_, T> FusedIterator for DrainSorted<'_, T> where
T: Ord,
impl<'_, T> FusedIterator for alloc::collections::binary_heap::Iter<'_, T>
impl<'_, T> FusedIterator for alloc::collections::btree::set::Iter<'_, T>
impl<'_, T> FusedIterator for alloc::collections::btree::set::Range<'_, T>
impl<'_, T> FusedIterator for alloc::collections::btree::set::SymmetricDifference<'_, T> where
T: Ord,
impl<'_, T> FusedIterator for alloc::collections::btree::set::Union<'_, T> where
T: Ord,
impl<'_, T> FusedIterator for alloc::collections::linked_list::Iter<'_, T>
impl<'_, T> FusedIterator for alloc::collections::linked_list::IterMut<'_, T>
impl<'_, T> FusedIterator for alloc::collections::vec_deque::iter::Iter<'_, T>
impl<'_, T> FusedIterator for alloc::collections::vec_deque::iter_mut::IterMut<'_, T>
impl<'_, T> FusedIterator for core::result::Iter<'_, T>
impl<'_, T> FusedIterator for core::result::IterMut<'_, T>
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 core::slice::iter::Iter<'_, T>
impl<'_, T> FusedIterator for core::slice::iter::IterMut<'_, 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, A> FusedIterator for alloc::collections::btree::set::Difference<'_, T, A> where
T: Ord,
A: Allocator + Clone,
impl<'_, T, A> FusedIterator for alloc::collections::btree::set::Intersection<'_, T, A> where
T: Ord,
A: Allocator + Clone,
impl<'_, T, A> FusedIterator for alloc::collections::vec_deque::drain::Drain<'_, T, A> where
A: Allocator,
impl<'_, T, A> FusedIterator for alloc::vec::drain::Drain<'_, T, A> where
A: Allocator,
impl<'_, T, F, A> FusedIterator for alloc::collections::btree::set::DrainFilter<'_, T, F, A> where
A: Allocator + Clone,
F: for<'_> FnMut(&T) -> bool,
impl<'_, T, P> FusedIterator for core::slice::iter::RSplit<'_, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'_, T, P> FusedIterator for RSplitMut<'_, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'_, T, P> FusedIterator for core::slice::iter::Split<'_, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'_, T, P> FusedIterator for core::slice::iter::SplitInclusive<'_, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'_, T, P> FusedIterator for SplitInclusiveMut<'_, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'_, T, P> FusedIterator for SplitMut<'_, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'_, T, S> FusedIterator for std::collections::hash::set::Difference<'_, T, S> where
T: Eq + Hash,
S: BuildHasher,
impl<'_, T, S> FusedIterator for std::collections::hash::set::Intersection<'_, T, S> where
T: Eq + Hash,
S: BuildHasher,
impl<'_, T, S> FusedIterator for std::collections::hash::set::SymmetricDifference<'_, T, S> where
T: Eq + Hash,
S: BuildHasher,
impl<'_, T, S> FusedIterator for std::collections::hash::set::Union<'_, T, S> where
T: Eq + Hash,
S: BuildHasher,
impl<'_, T, const N: usize> FusedIterator for ArrayChunks<'_, T, N>
impl<'_, T, const N: usize> FusedIterator for ArrayChunksMut<'_, T, N>
impl<'a> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::SetMatchesIter<'a>
impl<'a> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::SetMatchesIter<'a>
impl<'a> FusedIterator for EscapeAscii<'a>
impl<'a> FusedIterator for core::str::iter::EscapeDebug<'a>
impl<'a> FusedIterator for core::str::iter::EscapeDefault<'a>
impl<'a> FusedIterator for core::str::iter::EscapeUnicode<'a>
impl<'a, I, T> FusedIterator for Cloned<I> where
T: 'a + Clone,
I: FusedIterator<Item = &'a T>,
impl<'a, I, T> FusedIterator for Copied<I> where
T: 'a + Copy,
I: FusedIterator<Item = &'a T>,
impl<'a, P> FusedIterator for MatchIndices<'a, P> where
P: Pattern<'a>,
impl<'a, P> FusedIterator for core::str::iter::Matches<'a, P> where
P: Pattern<'a>,
impl<'a, P> FusedIterator for RMatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,
impl<'a, P> FusedIterator for RMatches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,
impl<'a, P> FusedIterator for core::str::iter::RSplit<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,
impl<'a, P> FusedIterator for core::str::iter::RSplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,
impl<'a, P> FusedIterator for RSplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,
impl<'a, P> FusedIterator for core::str::iter::Split<'a, P> where
P: Pattern<'a>,
impl<'a, P> FusedIterator for core::str::iter::SplitInclusive<'a, P> where
P: Pattern<'a>,
impl<'a, P> FusedIterator for core::str::iter::SplitN<'a, P> where
P: Pattern<'a>,
impl<'a, P> FusedIterator for SplitTerminator<'a, P> where
P: Pattern<'a>,
impl<'a, T, P> FusedIterator for GroupBy<'a, T, P> where
T: 'a,
P: for<'_, '_> FnMut(&T, &T) -> bool,
impl<'a, T, P> FusedIterator for GroupByMut<'a, T, P> where
T: 'a,
P: for<'_, '_> FnMut(&T, &T) -> bool,
impl<'a, T, P> FusedIterator for core::slice::iter::RSplitN<'a, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'a, T, P> FusedIterator for RSplitNMut<'a, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'a, T, P> FusedIterator for core::slice::iter::SplitN<'a, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'a, T, P> FusedIterator for SplitNMut<'a, T, P> where
P: for<'_> FnMut(&T) -> bool,
impl<'c, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::SubCaptureMatches<'c, 't>
impl<'c, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::SubCaptureMatches<'c, 't>
impl<'r> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::CaptureNames<'r>
impl<'r> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::CaptureNames<'r>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::CaptureMatches<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::Matches<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::Split<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::bytes::SplitN<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::CaptureMatches<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::Matches<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::Split<'r, 't>
impl<'r, 't> FusedIterator for std_tools::dependencies::derive_tools::dependencies::parse_display::helpers::regex::SplitN<'r, 't>
impl<A> FusedIterator for RepeatN<A> where
A: Clone,
impl<A> FusedIterator for core::ops::range::Range<A> where
A: Step,
impl<A> FusedIterator for RangeFrom<A> where
A: Step,
impl<A> FusedIterator for RangeInclusive<A> where
A: Step,
impl<A> FusedIterator for core::option::IntoIter<A>
impl<A> FusedIterator for Repeat<A> where
A: Clone,
impl<A, B> FusedIterator for Chain<A, B> where
A: FusedIterator,
B: FusedIterator<Item = <A as Iterator>::Item>,
impl<A, B> FusedIterator for Zip<A, B> where
A: FusedIterator,
B: FusedIterator,
impl<A, F> FusedIterator for OnceWith<F> where
F: FnOnce() -> A,
impl<A, F> FusedIterator for RepeatWith<F> where
F: FnMut() -> A,
impl<A, I> FusedIterator for RcIter<I> where
I: FusedIterator<Item = A>,
impl<B, I, F> FusedIterator for FilterMap<I, F> where
I: FusedIterator,
F: FnMut(<I as Iterator>::Item) -> Option<B>,
impl<B, I, F> FusedIterator for Map<I, F> where
I: FusedIterator,
F: FnMut(<I as Iterator>::Item) -> B,
impl<I> FusedIterator for Combinations<I> where
I: Iterator,
<I as Iterator>::Item: Clone,
impl<I> FusedIterator for CombinationsWithReplacement<I> where
I: Iterator,
<I as Iterator>::Item: Clone,
impl<I> FusedIterator for Powerset<I> where
I: Iterator,
<I as Iterator>::Item: Clone,
impl<I> FusedIterator for Unique<I> where
I: FusedIterator,
<I as Iterator>::Item: Eq,
<I as Iterator>::Item: Hash,
<I as Iterator>::Item: Clone,
impl<I> FusedIterator for WithPosition<I> where
I: Iterator,
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 Peekable<I> where
I: FusedIterator,
impl<I> FusedIterator for Rev<I> where
I: FusedIterator + DoubleEndedIterator,
impl<I> FusedIterator for Skip<I> where
I: FusedIterator,
impl<I> FusedIterator for Take<I> where
I: FusedIterator,
impl<I, A> FusedIterator for Box<I, A> where
I: FusedIterator + ?Sized,
A: Allocator,
impl<I, ElemF> FusedIterator for IntersperseWith<I, ElemF> where
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>,
impl<I, F> FusedIterator for KMergeBy<I, F> where
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>,
impl<I, F> FusedIterator for PadUsing<I, F> where
I: FusedIterator,
F: FnMut(usize) -> <I as Iterator>::Item,
impl<I, F> FusedIterator for Positions<I, F> where
I: FusedIterator,
F: FnMut(<I as Iterator>::Item) -> bool,
impl<I, F> FusedIterator for Update<I, F> where
I: FusedIterator,
F: for<'_> FnMut(&mut <I as Iterator>::Item),
impl<I, F> FusedIterator for Inspect<I, F> where
I: FusedIterator,
F: for<'_> FnMut(&<I as Iterator>::Item),
impl<I, F, T, E> FusedIterator for FilterOk<I, F> where
I: FusedIterator<Item = Result<T, E>>,
F: for<'_> FnMut(&T) -> bool,
impl<I, F, T, U, E> FusedIterator for FilterMapOk<I, F> where
I: FusedIterator<Item = Result<T, E>>,
F: FnMut(T) -> Option<U>,
impl<I, J> FusedIterator for Interleave<I, J> where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
impl<I, J> FusedIterator for InterleaveShortest<I, J> where
I: FusedIterator,
J: FusedIterator<Item = <I as Iterator>::Item>,
impl<I, J> FusedIterator for Product<I, J> where
I: FusedIterator,
J: Clone + FusedIterator,
<I as Iterator>::Item: Clone,
impl<I, J, F> FusedIterator for MergeBy<I, J, F> where
I: FusedIterator,
J: FusedIterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>,
impl<I, P> FusedIterator for Filter<I, P> where
I: FusedIterator,
P: for<'_> FnMut(&<I as Iterator>::Item) -> bool,
impl<I, P> FusedIterator for SkipWhile<I, P> where
I: FusedIterator,
P: for<'_> FnMut(&<I as Iterator>::Item) -> bool,
impl<I, P> FusedIterator for TakeWhile<I, P> where
I: FusedIterator,
P: for<'_> FnMut(&<I as Iterator>::Item) -> bool,
impl<I, T> FusedIterator for TupleCombinations<I, T> where
I: FusedIterator,
T: HasCombination<I>,
impl<I, T> FusedIterator for TupleWindows<I, T> where
I: FusedIterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple + Clone,
<T as TupleCollect>::Item: Clone,
impl<I, T, E> FusedIterator for FlattenOk<I, T, E> where
I: FusedIterator<Item = Result<T, E>>,
T: IntoIterator,
Only the iterator being flattened needs to implement FusedIterator
.