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 IpAddrRange
impl FusedIterator for IpSubnets
impl FusedIterator for Walk
impl FusedIterator for Ipv4AddrRange
impl FusedIterator for Ipv6AddrRange
impl FusedIterator for Ipv4Subnets
impl FusedIterator for Ipv6Subnets
impl FusedIterator for Utf8Sequences
impl FusedIterator for CharIter
impl FusedIterator for Utf8CharIndices<'_>
impl FusedIterator for ErrorReportingUtf8Chars<'_>
impl FusedIterator for Utf8Chars<'_>
impl FusedIterator for Utf16CharIndices<'_>
impl FusedIterator for ErrorReportingUtf16Chars<'_>
impl FusedIterator for Utf16Chars<'_>
impl FusedIterator for NaiveDateDaysIterator
impl FusedIterator for NaiveDateWeeksIterator
impl FusedIterator for rustmax::core::ffi::c_str::Bytes<'_>
impl FusedIterator for WeekdaysForward
impl FusedIterator for WeekdaysReverse
impl FusedIterator for U32Digits<'_>
impl FusedIterator for U64Digits<'_>
impl FusedIterator for rustmax::regex::bytes::SetMatchesIntoIter
impl FusedIterator for rustmax::regex::SetMatchesIntoIter
impl FusedIterator for rustmax::serde_json::map::IntoIter
impl FusedIterator for rustmax::std::ascii::EscapeDefault
impl FusedIterator for rustmax::std::char::EscapeDebug
impl FusedIterator for rustmax::std::char::EscapeDefault
impl FusedIterator for rustmax::std::char::EscapeUnicode
impl FusedIterator for ToLowercase
impl FusedIterator for ToUppercase
impl FusedIterator for Incoming<'_>
impl FusedIterator for IntoIncoming
impl FusedIterator for Ancestors<'_>
impl FusedIterator for Components<'_>
impl FusedIterator for rustmax::std::path::Iter<'_>
impl FusedIterator for rustmax::std::str::Bytes<'_>
impl FusedIterator for rustmax::std::str::CharIndices<'_>
impl FusedIterator for Chars<'_>
impl FusedIterator for EncodeUtf16<'_>
impl FusedIterator for rustmax::std::str::Lines<'_>
impl FusedIterator for LinesAny<'_>
impl FusedIterator for SplitAsciiWhitespace<'_>
impl FusedIterator for SplitWhitespace<'_>
impl FusedIterator for rustmax::std::str::Utf8Chunks<'_>
impl FusedIterator for rustmax::std::string::Drain<'_>
impl FusedIterator for rustmax::walkdir::IntoIter
impl<'a> FusedIterator for bstr::ext_slice::Bytes<'a>
impl<'a> FusedIterator for bstr::ext_slice::Lines<'a>
impl<'a> FusedIterator for LinesWithTerminator<'a>
impl<'a> FusedIterator for DrainBytes<'a>
impl<'a> FusedIterator for bstr::utf8::CharIndices<'a>
impl<'a> FusedIterator for bstr::utf8::Utf8Chunks<'a>
impl<'a> FusedIterator for AsciiCharsIter<'a>
impl<'a> FusedIterator for CapturesPatternIter<'a>
impl<'a> FusedIterator for GroupInfoPatternNames<'a>
impl<'a> FusedIterator for Source<'a>
impl<'a> FusedIterator for rustmax::regex::bytes::SetMatchesIter<'a>
impl<'a> FusedIterator for rustmax::regex::SetMatchesIter<'a>
impl<'a> FusedIterator for rustmax::serde_json::map::Iter<'a>
impl<'a> FusedIterator for rustmax::serde_json::map::IterMut<'a>
impl<'a> FusedIterator for rustmax::serde_json::map::Keys<'a>
impl<'a> FusedIterator for rustmax::serde_json::map::Values<'a>
impl<'a> FusedIterator for rustmax::serde_json::map::ValuesMut<'a>
impl<'a> FusedIterator for EscapeAscii<'a>
impl<'a> FusedIterator for rustmax::std::str::EscapeDebug<'a>
impl<'a> FusedIterator for rustmax::std::str::EscapeDefault<'a>
impl<'a> FusedIterator for rustmax::std::str::EscapeUnicode<'a>
impl<'a, 'fd> FusedIterator for Fds<'a, 'fd>
impl<'a, 'h> FusedIterator for memchr::arch::x86_64::avx2::memchr::OneIter<'a, 'h>
impl<'a, 'h> FusedIterator for memchr::arch::x86_64::avx2::memchr::ThreeIter<'a, 'h>
impl<'a, 'h> FusedIterator for memchr::arch::x86_64::avx2::memchr::TwoIter<'a, 'h>
impl<'a, 'h> FusedIterator for memchr::arch::x86_64::sse2::memchr::OneIter<'a, 'h>
impl<'a, 'h> FusedIterator for memchr::arch::x86_64::sse2::memchr::ThreeIter<'a, 'h>
impl<'a, 'h> FusedIterator for memchr::arch::x86_64::sse2::memchr::TwoIter<'a, 'h>
impl<'a, I, T> FusedIterator for Cloned<I>
impl<'a, I, T> FusedIterator for Copied<I>
impl<'a, K, V> FusedIterator for phf::map::Entries<'a, K, V>
impl<'a, K, V> FusedIterator for phf::map::Keys<'a, K, V>
impl<'a, K, V> FusedIterator for phf::map::Values<'a, K, V>
impl<'a, K, V> FusedIterator for phf::ordered_map::Entries<'a, K, V>
impl<'a, K, V> FusedIterator for phf::ordered_map::Keys<'a, K, V>
impl<'a, K, V> FusedIterator for phf::ordered_map::Values<'a, K, V>
impl<'a, P> FusedIterator for MatchIndices<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for rustmax::std::str::Matches<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for RMatchIndices<'a, P>
impl<'a, P> FusedIterator for RMatches<'a, P>
impl<'a, P> FusedIterator for rustmax::std::str::RSplit<'a, P>
impl<'a, P> FusedIterator for rustmax::std::str::RSplitN<'a, P>
impl<'a, P> FusedIterator for RSplitTerminator<'a, P>
impl<'a, P> FusedIterator for rustmax::std::str::Split<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for rustmax::std::str::SplitInclusive<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for rustmax::std::str::SplitN<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for SplitTerminator<'a, P>where
P: Pattern,
impl<'a, T> FusedIterator for phf::ordered_set::Iter<'a, T>
impl<'a, T> FusedIterator for phf::set::Iter<'a, T>
impl<'a, T> FusedIterator for smallvec::Drain<'a, T>where
T: Array,
impl<'a, T> FusedIterator for rustmax::cxx_build::vector::Iter<'a, T>where
T: VectorElement,
impl<'a, T> FusedIterator for rustmax::cxx_build::vector::IterMut<'a, T>where
T: VectorElement,
impl<'a, T> FusedIterator for rustmax::reqwest::header::Drain<'a, T>
impl<'a, T> FusedIterator for rustmax::reqwest::header::Iter<'a, T>
impl<'a, T> FusedIterator for rustmax::reqwest::header::IterMut<'a, T>
impl<'a, T> FusedIterator for rustmax::reqwest::header::Keys<'a, T>
impl<'a, T> FusedIterator for ValueDrain<'a, T>
impl<'a, T> FusedIterator for ValueIter<'a, T>
impl<'a, T> FusedIterator for ValueIterMut<'a, T>
impl<'a, T> FusedIterator for rustmax::reqwest::header::Values<'a, T>
impl<'a, T> FusedIterator for rustmax::reqwest::header::ValuesMut<'a, T>
impl<'a, T, P> FusedIterator for ChunkBy<'a, T, P>
impl<'a, T, P> FusedIterator for ChunkByMut<'a, T, P>
impl<'a, T, P> FusedIterator for rustmax::std::slice::RSplitN<'a, T, P>
impl<'a, T, P> FusedIterator for RSplitNMut<'a, T, P>
impl<'a, T, P> FusedIterator for rustmax::std::slice::SplitN<'a, T, P>
impl<'a, T, P> FusedIterator for SplitNMut<'a, T, P>
impl<'c, 'h> FusedIterator for rustmax::regex::bytes::SubCaptureMatches<'c, 'h>
impl<'c, 'h> FusedIterator for rustmax::regex::SubCaptureMatches<'c, 'h>
impl<'de, R, T> FusedIterator for StreamDeserializer<'de, R, T>where
R: Read<'de> + Fused,
T: Deserialize<'de>,
impl<'h> FusedIterator for Memchr2<'h>
impl<'h> FusedIterator for Memchr3<'h>
impl<'h> FusedIterator for Memchr<'h>
impl<'r> FusedIterator for rustmax::regex::bytes::CaptureNames<'r>
impl<'r> FusedIterator for rustmax::regex::CaptureNames<'r>
impl<'r, 'h> FusedIterator for CapturesMatches<'r, 'h>
impl<'r, 'h> FusedIterator for FindMatches<'r, 'h>
impl<'r, 'h> FusedIterator for regex_automata::meta::regex::Split<'r, 'h>
impl<'r, 'h> FusedIterator for regex_automata::meta::regex::SplitN<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::bytes::CaptureMatches<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::bytes::Matches<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::bytes::Split<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::bytes::SplitN<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::CaptureMatches<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::Matches<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::Split<'r, 'h>
impl<'r, 'h> FusedIterator for rustmax::regex::SplitN<'r, 'h>
impl<'t> FusedIterator for TimeZoneFollowingTransitions<'t>
impl<'t> FusedIterator for TimeZonePrecedingTransitions<'t>
impl<A> FusedIterator for itertools::repeatn::RepeatN<A>where
A: Clone,
impl<A> FusedIterator for smallvec::IntoIter<A>where
A: Array,
impl<A> FusedIterator for IterRange<A>where
A: Step,
impl<A> FusedIterator for IterRangeFrom<A>where
A: Step,
impl<A> FusedIterator for IterRangeInclusive<A>where
A: Step,
impl<A> FusedIterator for rustmax::itertools::RepeatN<A>where
A: Clone,
impl<A> FusedIterator for Repeat<A>where
A: Clone,
impl<A> FusedIterator for rustmax::std::iter::RepeatN<A>where
A: Clone,
impl<A> FusedIterator for rustmax::std::ops::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 rustmax::std::option::IntoIter<A>
impl<A> FusedIterator for rustmax::std::option::Iter<'_, A>
impl<A> FusedIterator for rustmax::std::option::IterMut<'_, A>
impl<A, B> FusedIterator for Chain<A, B>
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>
impl<B, I, F> FusedIterator for Map<I, F>
impl<D, R, T> FusedIterator for DistIter<D, R, T>where
D: Distribution<T>,
R: Rng,
impl<D, R, T> FusedIterator for rustmax::rand::distr::Iter<D, R, T>where
D: Distribution<T>,
R: Rng,
impl<I> FusedIterator for &mut Iwhere
I: FusedIterator + ?Sized,
impl<I> FusedIterator for itertools::with_position::WithPosition<I>where
I: Iterator,
impl<I> FusedIterator for CombinationsWithReplacement<I>
impl<I> FusedIterator for MultiProduct<I>
impl<I> FusedIterator for Permutations<I>
impl<I> FusedIterator for Powerset<I>
impl<I> FusedIterator for Unique<I>
impl<I> FusedIterator for rustmax::itertools::WithPosition<I>where
I: Iterator,
impl<I> FusedIterator for DecodeUtf16<I>
impl<I> FusedIterator for Cycle<I>
impl<I> FusedIterator for Enumerate<I>where
I: FusedIterator,
impl<I> FusedIterator for Fuse<I>where
I: Iterator,
impl<I> FusedIterator for Intersperse<I>
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>
impl<I, ElemF> FusedIterator for itertools::intersperse::IntersperseWith<I, ElemF>
impl<I, ElemF> FusedIterator for rustmax::itertools::IntersperseWith<I, ElemF>
impl<I, F> FusedIterator for itertools::adaptors::Positions<I, F>
impl<I, F> FusedIterator for itertools::adaptors::Update<I, F>
impl<I, F> FusedIterator for itertools::pad_tail::PadUsing<I, F>
impl<I, F> FusedIterator for itertools::take_while_inclusive::TakeWhileInclusive<I, F>
impl<I, F> FusedIterator for KMergeBy<I, F>
impl<I, F> FusedIterator for rustmax::itertools::PadUsing<I, F>
impl<I, F> FusedIterator for rustmax::itertools::Positions<I, F>
impl<I, F> FusedIterator for rustmax::itertools::TakeWhileInclusive<I, F>
impl<I, F> FusedIterator for rustmax::itertools::Update<I, F>
impl<I, F> FusedIterator for Inspect<I, F>
impl<I, F, R, const N: usize> FusedIterator for MapWindows<I, F, N>
impl<I, F, T, E> FusedIterator for itertools::adaptors::FilterOk<I, F>
impl<I, F, T, E> FusedIterator for rustmax::itertools::FilterOk<I, F>
impl<I, F, T, U, E> FusedIterator for itertools::adaptors::FilterMapOk<I, F>
impl<I, F, T, U, E> FusedIterator for rustmax::itertools::FilterMapOk<I, F>
impl<I, G> FusedIterator for rustmax::std::iter::IntersperseWith<I, G>
impl<I, J> FusedIterator for itertools::adaptors::Interleave<I, J>
impl<I, J> FusedIterator for itertools::adaptors::InterleaveShortest<I, J>
impl<I, J> FusedIterator for itertools::adaptors::Product<I, J>
impl<I, J> FusedIterator for rustmax::itertools::Interleave<I, J>
impl<I, J> FusedIterator for rustmax::itertools::InterleaveShortest<I, J>
impl<I, J> FusedIterator for rustmax::itertools::Product<I, J>
impl<I, J, F> FusedIterator for itertools::merge_join::MergeBy<I, J, F>
impl<I, J, F> FusedIterator for rustmax::itertools::MergeBy<I, J, F>
impl<I, K, V, S> FusedIterator for indexmap::map::iter::Splice<'_, I, K, V, S>
impl<I, P> FusedIterator for Filter<I, P>
impl<I, P> FusedIterator for SkipWhile<I, P>
impl<I, P> FusedIterator for TakeWhile<I, P>
impl<I, T> FusedIterator for itertools::adaptors::TupleCombinations<I, T>where
I: FusedIterator,
T: HasCombination<I>,
impl<I, T> FusedIterator for itertools::tuple_impl::CircularTupleWindows<I, T>
impl<I, T> FusedIterator for itertools::tuple_impl::TupleWindows<I, T>where
I: FusedIterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple + Clone,
<T as TupleCollect>::Item: Clone,
impl<I, T> FusedIterator for rustmax::itertools::CircularTupleWindows<I, T>
impl<I, T> FusedIterator for rustmax::itertools::TupleCombinations<I, T>where
I: FusedIterator,
T: HasCombination<I>,
impl<I, T> FusedIterator for rustmax::itertools::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 itertools::flatten_ok::FlattenOk<I, T, E>
Only the iterator being flattened needs to implement FusedIterator
.
impl<I, T, E> FusedIterator for rustmax::itertools::FlattenOk<I, T, E>
Only the iterator being flattened needs to implement FusedIterator
.