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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl FusedIterator for IpAddrRange
impl FusedIterator for IpSubnets
impl FusedIterator for NaiveDateDaysIterator
impl FusedIterator for NaiveDateWeeksIterator
impl FusedIterator for otter_nodejs_tests::inventory::core::ascii::EscapeDefault
impl FusedIterator for otter_nodejs_tests::inventory::core::char::EscapeDebug
impl FusedIterator for otter_nodejs_tests::inventory::core::char::EscapeDefault
impl FusedIterator for otter_nodejs_tests::inventory::core::char::EscapeUnicode
impl FusedIterator for ToLowercase
impl FusedIterator for ToTitlecase
impl FusedIterator for ToUppercase
impl FusedIterator for otter_nodejs_tests::inventory::core::ffi::c_str::Bytes<'_>
impl FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::IntoIter
impl FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::IntoValues
impl FusedIterator for otter_nodejs_tests::regex::bytes::SetMatchesIntoIter
impl FusedIterator for otter_nodejs_tests::regex::SetMatchesIntoIter
impl FusedIterator for otter_nodejs_tests::str::Bytes<'_>
impl FusedIterator for otter_nodejs_tests::str::CharIndices<'_>
impl FusedIterator for Chars<'_>
impl FusedIterator for EncodeUtf16<'_>
impl FusedIterator for otter_nodejs_tests::str::Lines<'_>
impl FusedIterator for LinesAny<'_>
impl FusedIterator for SplitAsciiWhitespace<'_>
impl FusedIterator for SplitWhitespace<'_>
impl FusedIterator for otter_nodejs_tests::str::Utf8Chunks<'_>
impl FusedIterator for alloc::string::Drain<'_>
impl FusedIterator for IntoChars
impl FusedIterator for Incoming<'_>
impl FusedIterator for IntoIncoming
impl FusedIterator for Ancestors<'_>
impl FusedIterator for Components<'_>
impl FusedIterator for std::path::Iter<'_>
impl FusedIterator for AnsiCodeIterator<'_>
impl FusedIterator for Walk
impl FusedIterator for Ipv4AddrRange
impl FusedIterator for Ipv6AddrRange
impl FusedIterator for Ipv4Subnets
impl FusedIterator for Ipv6Subnets
impl FusedIterator for U32Digits<'_>
impl FusedIterator for U64Digits<'_>
impl FusedIterator for Utf8Sequences
impl FusedIterator for Utf8CharIndices<'_>
impl FusedIterator for ErrorReportingUtf8Chars<'_>
impl FusedIterator for Utf8Chars<'_>
impl FusedIterator for walkdir::IntoIter
impl<'a> FusedIterator for Source<'a>
impl<'a> FusedIterator for EscapeAscii<'a>
impl<'a> FusedIterator for Fds<'a>
impl<'a> FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::Iter<'a>
impl<'a> FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::IterMut<'a>
impl<'a> FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::Keys<'a>
impl<'a> FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::Values<'a>
impl<'a> FusedIterator for otter_nodejs_tests::otter_base::crates::serde_json::map::ValuesMut<'a>
impl<'a> FusedIterator for otter_nodejs_tests::regex::bytes::SetMatchesIter<'a>
impl<'a> FusedIterator for otter_nodejs_tests::regex::SetMatchesIter<'a>
impl<'a> FusedIterator for otter_nodejs_tests::str::EscapeDebug<'a>
impl<'a> FusedIterator for otter_nodejs_tests::str::EscapeDefault<'a>
impl<'a> FusedIterator for otter_nodejs_tests::str::EscapeUnicode<'a>
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, '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 otter_nodejs_tests::slotmap::basic::Drain<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::basic::Iter<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::basic::IterMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::basic::Keys<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::basic::Values<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::basic::ValuesMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::dense::Drain<'a, K, V>where
K: 'a + Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::dense::Iter<'a, K, V>where
K: 'a + Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::dense::IterMut<'a, K, V>where
K: 'a + Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::dense::Keys<'a, K, V>where
K: 'a + Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::dense::Values<'a, K, V>where
K: 'a + Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::dense::ValuesMut<'a, K, V>where
K: 'a + Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::hop::Drain<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::hop::Iter<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::hop::IterMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::hop::Keys<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::hop::Values<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::hop::ValuesMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::secondary::Drain<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::secondary::Iter<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::secondary::IterMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::secondary::Keys<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::secondary::Values<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::secondary::ValuesMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::sparse_secondary::Drain<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::sparse_secondary::Iter<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::sparse_secondary::IterMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::sparse_secondary::Keys<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::sparse_secondary::Values<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for otter_nodejs_tests::slotmap::sparse_secondary::ValuesMut<'a, K, V>where
K: Key,
impl<'a, K, V> FusedIterator for enum_map::iter::Iter<'a, K, V>where
K: EnumArray<V>,
impl<'a, K, V> FusedIterator for enum_map::iter::IterMut<'a, K, V>where
K: EnumArray<V>,
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 otter_nodejs_tests::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 otter_nodejs_tests::str::RSplit<'a, P>
impl<'a, P> FusedIterator for otter_nodejs_tests::str::RSplitN<'a, P>
impl<'a, P> FusedIterator for RSplitTerminator<'a, P>
impl<'a, P> FusedIterator for otter_nodejs_tests::str::Split<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for otter_nodejs_tests::str::SplitInclusive<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for otter_nodejs_tests::str::SplitN<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for SplitTerminator<'a, P>where
P: Pattern,
impl<'a, T> FusedIterator for http::header::map::Drain<'a, T>
impl<'a, T> FusedIterator for http::header::map::Iter<'a, T>
impl<'a, T> FusedIterator for http::header::map::IterMut<'a, T>
impl<'a, T> FusedIterator for http::header::map::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 http::header::map::Values<'a, T>
impl<'a, T> FusedIterator for http::header::map::ValuesMut<'a, T>
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, P> FusedIterator for ChunkBy<'a, T, P>
impl<'a, T, P> FusedIterator for ChunkByMut<'a, T, P>
impl<'a, T, P> FusedIterator for otter_nodejs_tests::inventory::core::slice::RSplitN<'a, T, P>
impl<'a, T, P> FusedIterator for RSplitNMut<'a, T, P>
impl<'a, T, P> FusedIterator for otter_nodejs_tests::inventory::core::slice::SplitN<'a, T, P>
impl<'a, T, P> FusedIterator for SplitNMut<'a, T, P>
impl<'a, V> FusedIterator for enum_map::iter::Values<'a, V>where
V: 'a,
impl<'a, V> FusedIterator for enum_map::iter::ValuesMut<'a, V>where
V: 'a,
impl<'c, 'h> FusedIterator for otter_nodejs_tests::regex::bytes::SubCaptureMatches<'c, 'h>
impl<'c, 'h> FusedIterator for otter_nodejs_tests::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 otter_nodejs_tests::regex::bytes::CaptureNames<'r>
impl<'r> FusedIterator for otter_nodejs_tests::regex::CaptureNames<'r>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::bytes::CaptureMatches<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::bytes::Matches<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::bytes::Split<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::bytes::SplitN<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::CaptureMatches<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::Matches<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::Split<'r, 'h>
impl<'r, 'h> FusedIterator for otter_nodejs_tests::regex::SplitN<'r, 'h>
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<'v, T, I> FusedIterator for otter_nodejs_tests::vecdeque_stableix::Iter<'v, T, I>where
I: Offset,
impl<'v, T, I> FusedIterator for otter_nodejs_tests::vecdeque_stableix::IterMut<'v, T, I>where
I: Offset,
impl<A> FusedIterator for otter_nodejs_tests::inventory::core::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 otter_nodejs_tests::inventory::core::option::IntoIter<A>
impl<A> FusedIterator for otter_nodejs_tests::inventory::core::option::Iter<'_, A>
impl<A> FusedIterator for otter_nodejs_tests::inventory::core::option::IterMut<'_, A>
impl<A> FusedIterator for OptionFlatten<A>where
A: FusedIterator,
impl<A> FusedIterator for RangeFromIter<A>where
A: Step,
impl<A> FusedIterator for RangeInclusiveIter<A>where
A: Step,
impl<A> FusedIterator for RangeIter<A>where
A: Step,
impl<A> FusedIterator for otter_nodejs_tests::otter_base::crates::itertools::RepeatN<A>where
A: Clone,
impl<A> FusedIterator for smallvec::IntoIter<A>where
A: Array,
impl<A> FusedIterator for Repeat<A>where
A: Clone,
impl<A> FusedIterator for otter_nodejs_tests::iter::RepeatN<A>where
A: Clone,
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<EntryData> FusedIterator for dlv_list::Drain<'_, EntryData>
impl<EntryData> FusedIterator for Indices<'_, EntryData>
impl<EntryData> FusedIterator for dlv_list::IntoIter<EntryData>
impl<EntryData> FusedIterator for dlv_list::Iter<'_, EntryData>
impl<EntryData> FusedIterator for dlv_list::IterMut<'_, EntryData>
impl<I> FusedIterator for &mut Iwhere
I: FusedIterator + ?Sized,
impl<I> FusedIterator for DecodeUtf16<I>
impl<I> FusedIterator for Combinations<I>
impl<I> FusedIterator for CombinationsWithReplacement<I>
impl<I> FusedIterator for Powerset<I>
impl<I> FusedIterator for Unique<I>
impl<I> FusedIterator for WithPosition<I>where
I: Iterator,
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 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 IntersperseWith<I, ElemF>
impl<I, F> FusedIterator for KMergeBy<I, F>
impl<I, F> FusedIterator for PadUsing<I, F>
impl<I, F> FusedIterator for Positions<I, F>
impl<I, F> FusedIterator for 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 FilterOk<I, F>
impl<I, F, T, U, E> FusedIterator for FilterMapOk<I, F>
impl<I, J> FusedIterator for Interleave<I, J>
impl<I, J> FusedIterator for InterleaveShortest<I, J>
impl<I, J> FusedIterator for Product<I, J>
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, 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 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>
Only the iterator being flattened needs to implement FusedIterator.