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 gclient::ext::sp_core::bounded::alloc::str::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 Utf8Chunks<'_>
impl FusedIterator for gclient::ext::sp_core::bounded::alloc::string::Drain<'_>
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 core::ffi::c_str::Bytes<'_>
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 U32Digits<'_>
impl FusedIterator for U64Digits<'_>
impl FusedIterator for serde_json::map::IntoIter
impl FusedIterator for IntoIter
impl FusedIterator for SetMatchesIntoIter
impl FusedIterator for SetMatchesIntoIter
impl FusedIterator for Utf8Sequences
impl FusedIterator for Utf8Sequences
impl<'a> FusedIterator for EscapeAscii<'a>
impl<'a> FusedIterator for gclient::ext::sp_core::bounded::alloc::str::EscapeDebug<'a>
impl<'a> FusedIterator for gclient::ext::sp_core::bounded::alloc::str::EscapeDefault<'a>
impl<'a> FusedIterator for gclient::ext::sp_core::bounded::alloc::str::EscapeUnicode<'a>
impl<'a> FusedIterator for Source<'a>
impl<'a> FusedIterator for serde_json::map::Iter<'a>
impl<'a> FusedIterator for serde_json::map::IterMut<'a>
impl<'a> FusedIterator for serde_json::map::Keys<'a>
impl<'a> FusedIterator for serde_json::map::Values<'a>
impl<'a> FusedIterator for serde_json::map::ValuesMut<'a>
impl<'a> FusedIterator for CapturesPatternIter<'a>
impl<'a> FusedIterator for GroupInfoPatternNames<'a>
impl<'a> FusedIterator for HexToBytesIter<'a>
impl<'a> FusedIterator for SetMatchesIter<'a>
impl<'a> FusedIterator for SetMatchesIter<'a>
impl<'a, 'h> FusedIterator for OneIter<'a, 'h>
impl<'a, 'h> FusedIterator for OneIter<'a, 'h>
impl<'a, 'h> FusedIterator for ThreeIter<'a, 'h>
impl<'a, 'h> FusedIterator for ThreeIter<'a, 'h>
impl<'a, 'h> FusedIterator for TwoIter<'a, 'h>
impl<'a, 'h> FusedIterator for 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 Iter<'a, K, V>
impl<'a, K, V> FusedIterator for IterMut<'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, P> FusedIterator for MatchIndices<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::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 gclient::ext::sp_core::bounded::alloc::str::RSplit<'a, P>
impl<'a, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::str::RSplitN<'a, P>
impl<'a, P> FusedIterator for RSplitTerminator<'a, P>
impl<'a, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::str::Split<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::str::SplitInclusive<'a, P>where
P: Pattern,
impl<'a, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::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 http::header::map::ValueDrain<'a, T>
impl<'a, T> FusedIterator for http::header::map::ValueIter<'a, T>
impl<'a, T> FusedIterator for http::header::map::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 ArrayVecDrain<'a, T>where
T: 'a + Default,
impl<'a, T> FusedIterator for Drain<'a, T>
impl<'a, T> FusedIterator for Drain<'a, T>where
T: Array,
impl<'a, T> FusedIterator for Iter<'a, T>
impl<'a, T> FusedIterator for Iter<'a, T>
impl<'a, T> FusedIterator for Iter<'a, T>
impl<'a, T> FusedIterator for IterMut<'a, T>
impl<'a, T> FusedIterator for 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 Values<'a, T>
impl<'a, T> FusedIterator for ValuesMut<'a, T>
impl<'a, T, O> FusedIterator for ChunksExactMutNoAlias<'a, T, O>where
T: 'a + BitStore,
O: BitOrder,
ChunksExactMut<'a, T, O>: FusedIterator,
impl<'a, T, O> FusedIterator for ChunksMutNoAlias<'a, T, O>where
T: 'a + BitStore,
O: BitOrder,
ChunksMut<'a, T, O>: FusedIterator,
impl<'a, T, O> FusedIterator for IterMutNoAlias<'a, T, O>where
T: 'a + BitStore,
O: BitOrder,
IterMut<'a, T, O>: FusedIterator,
impl<'a, T, O> FusedIterator for RChunksExactMutNoAlias<'a, T, O>where
T: 'a + BitStore,
O: BitOrder,
RChunksExactMut<'a, T, O>: FusedIterator,
impl<'a, T, O> FusedIterator for RChunksMutNoAlias<'a, T, O>where
T: 'a + BitStore,
O: BitOrder,
RChunksMut<'a, T, O>: FusedIterator,
impl<'a, T, O, P> FusedIterator for RSplit<'a, T, O, P>
impl<'a, T, O, P> FusedIterator for RSplitMut<'a, T, O, P>
impl<'a, T, O, P> FusedIterator for RSplitMutNoAlias<'a, T, O, P>where
T: 'a + BitStore,
O: BitOrder,
P: FnMut(usize, &bool) -> bool,
RSplitMut<'a, T, O, P>: FusedIterator,
impl<'a, T, O, P> FusedIterator for RSplitNMutNoAlias<'a, T, O, P>where
T: 'a + BitStore,
O: BitOrder,
P: FnMut(usize, &bool) -> bool,
RSplitNMut<'a, T, O, P>: FusedIterator,
impl<'a, T, O, P> FusedIterator for Split<'a, T, O, P>
impl<'a, T, O, P> FusedIterator for SplitInclusive<'a, T, O, P>
impl<'a, T, O, P> FusedIterator for SplitInclusiveMut<'a, T, O, P>
impl<'a, T, O, P> FusedIterator for SplitInclusiveMutNoAlias<'a, T, O, P>where
T: 'a + BitStore,
O: BitOrder,
P: FnMut(usize, &bool) -> bool,
SplitInclusiveMut<'a, T, O, P>: FusedIterator,
impl<'a, T, O, P> FusedIterator for SplitMut<'a, T, O, P>
impl<'a, T, O, P> FusedIterator for SplitMutNoAlias<'a, T, O, P>where
T: 'a + BitStore,
O: BitOrder,
P: FnMut(usize, &bool) -> bool,
SplitMut<'a, T, O, P>: FusedIterator,
impl<'a, T, O, P> FusedIterator for SplitNMutNoAlias<'a, T, O, P>where
T: 'a + BitStore,
O: BitOrder,
P: FnMut(usize, &bool) -> bool,
SplitNMut<'a, T, O, P>: FusedIterator,
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 gclient::ext::sp_core::bounded::alloc::slice::RSplitN<'a, T, P>
impl<'a, T, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::slice::RSplitNMut<'a, T, P>
impl<'a, T, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::slice::SplitN<'a, T, P>
impl<'a, T, P> FusedIterator for gclient::ext::sp_core::bounded::alloc::slice::SplitNMut<'a, T, P>
impl<'c, 'h> FusedIterator for SubCaptureMatches<'c, 'h>
impl<'c, 'h> FusedIterator for 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<'p, 's, T> FusedIterator for SliceVecDrain<'p, 's, T>where
T: Default,
impl<'p, A, I> FusedIterator for ArrayVecSplice<'p, A, I>where
A: Array,
I: Iterator<Item = <A as Array>::Item>,
impl<'p, A, I> FusedIterator for TinyVecSplice<'p, A, I>where
A: Array,
I: Iterator<Item = <A as Array>::Item>,
impl<'r> FusedIterator for CaptureNames<'r>
impl<'r> FusedIterator for CaptureNames<'r>
impl<'r, 'h> FusedIterator for CaptureMatches<'r, 'h>
impl<'r, 'h> FusedIterator for CaptureMatches<'r, 'h>
impl<'r, 'h> FusedIterator for CapturesMatches<'r, 'h>
impl<'r, 'h> FusedIterator for FindMatches<'r, 'h>
impl<'r, 'h> FusedIterator for Matches<'r, 'h>
impl<'r, 'h> FusedIterator for Matches<'r, 'h>
impl<'r, 'h> FusedIterator for Split<'r, 'h>
impl<'r, 'h> FusedIterator for Split<'r, 'h>
impl<'r, 'h> FusedIterator for Split<'r, 'h>
impl<'r, 'h> FusedIterator for SplitN<'r, 'h>
impl<'r, 'h> FusedIterator for SplitN<'r, 'h>
impl<'r, 'h> FusedIterator for SplitN<'r, 'h>
impl<A> FusedIterator for gclient::ext::sp_core::sp_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 core::option::IntoIter<A>
impl<A> FusedIterator for core::option::Iter<'_, A>
impl<A> FusedIterator for core::option::IterMut<'_, A>
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 itertools::repeatn::RepeatN<A>where
A: Clone,
impl<A> FusedIterator for Repeat<A>where
A: Clone,
impl<A> FusedIterator for gclient::ext::sp_core::sp_std::iter::RepeatN<A>where
A: Clone,
impl<A> FusedIterator for ArrayVecIterator<A>where
A: Array,
impl<A> FusedIterator for IntoIter<A>where
A: Array,
impl<A> FusedIterator for TinyVecIterator<A>where
A: Array,
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<A, O> FusedIterator for IntoIter<A, O>where
A: BitViewSized,
O: BitOrder,
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<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 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> FusedIterator for Bidi<I>where
I: DoubleEndedIterator + FusedIterator,
impl<I> FusedIterator for BytesToHexIter<I>
impl<I, A> FusedIterator for gclient::ext::sp_core::sp_std::prelude::Box<I, A>
impl<I, A> FusedIterator for Box<I, A>where
I: FusedIterator + ?Sized,
A: Allocator,
impl<I, ElemF> FusedIterator for itertools::intersperse::IntersperseWith<I, ElemF>
impl<I, F> FusedIterator for Positions<I, F>
impl<I, F> FusedIterator for Update<I, F>
impl<I, F> FusedIterator for KMergeBy<I, F>
impl<I, F> FusedIterator for PadUsing<I, F>
impl<I, F> FusedIterator for TakeWhileInclusive<'_, 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, G> FusedIterator for gclient::ext::sp_core::sp_std::iter::IntersperseWith<I, G>
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 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
.