Trait sp_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.

Implementations on Foreign Types

Implementors

impl FusedIterator for Iter<'_>

impl<O, V> FusedIterator for IntoIter<O, V> where
    O: BitOrder,
    V: BitView

impl<T> FusedIterator for Domain<'_, T> where
    T: BitStore

impl<M, O, T> FusedIterator for BitPtrRange<M, O, T> where
    M: Mutability,
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for IterMut<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for Windows<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for Chunks<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for ChunksMut<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for ChunksExact<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for ChunksExactMut<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for RChunks<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for RChunksMut<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for RChunksExact<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for RChunksExactMut<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<'a, O, T, P> FusedIterator for Split<'a, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<'a, O, T, P> FusedIterator for SplitMut<'a, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<'a, O, T, P> FusedIterator for RSplit<'a, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<'a, O, T, P> FusedIterator for RSplitMut<'a, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<O, T, P> FusedIterator for SplitN<'_, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<O, T, P> FusedIterator for SplitNMut<'_, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<O, T, P> FusedIterator for RSplitN<'_, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<O, T, P> FusedIterator for RSplitNMut<'_, O, T, P> where
    O: BitOrder,
    T: BitStore,
    P: FnMut(usize, &bool) -> bool

impl<O, T> FusedIterator for IterOnes<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for IterZeros<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for IntoIter<O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T> FusedIterator for Drain<'_, O, T> where
    O: BitOrder,
    T: BitStore

impl<O, T, I> FusedIterator for Splice<'_, O, T, I> where
    O: BitOrder,
    T: BitStore,
    I: Iterator<Item = bool>, 

impl<'a> FusedIterator for Bytes<'a>

impl<'a> FusedIterator for DrainBytes<'a>

impl<'a> FusedIterator for CharIndices<'a>

impl<'a> FusedIterator for Utf8Chunks<'a>

impl<'a> FusedIterator for ChunkIter<'a>

impl<T> FusedIterator for Iter<'_, T>

impl<T> FusedIterator for IntoIter<T>

impl<T, N> FusedIterator for GenericArrayIter<T, N> where
    N: ArrayLength<T>, 

impl<T> FusedIterator for RawIter<T>

impl<T, A: Allocator + Clone> FusedIterator for RawIntoIter<T, A>

impl<T, A: Allocator + Clone> FusedIterator for RawDrain<'_, T, A>

impl<K, V, F> FusedIterator for DrainFilter<'_, K, V, F> where
    F: FnMut(&K, &mut V) -> bool

impl<K, V> FusedIterator for Iter<'_, K, V>

impl<K, V> FusedIterator for IterMut<'_, K, V>

impl<K, V, A: Allocator + Clone> FusedIterator for IntoIter<K, V, A>

impl<K, V> FusedIterator for Keys<'_, K, V>

impl<K, V> FusedIterator for Values<'_, K, V>

impl<K, V> FusedIterator for ValuesMut<'_, K, V>

impl<K, V, A: Allocator + Clone> FusedIterator for Drain<'_, K, V, A>

impl<K> FusedIterator for Iter<'_, K>

impl<K, A: Allocator + Clone> FusedIterator for IntoIter<K, A>

impl<K, A: Allocator + Clone> FusedIterator for Drain<'_, K, A>

impl<K, F, A: Allocator + Clone> FusedIterator for DrainFilter<'_, K, F, A> where
    F: FnMut(&K) -> bool

impl<T, S, A> FusedIterator for Intersection<'_, T, S, A> where
    T: Eq + Hash,
    S: BuildHasher,
    A: Allocator + Clone

impl<T, S, A> FusedIterator for Difference<'_, T, S, A> where
    T: Eq + Hash,
    S: BuildHasher,
    A: Allocator + Clone

impl<T, S, A> FusedIterator for SymmetricDifference<'_, T, S, A> where
    T: Eq + Hash,
    S: BuildHasher,
    A: Allocator + Clone

impl<T, S, A> FusedIterator for Union<'_, T, S, A> where
    T: Eq + Hash,
    S: BuildHasher,
    A: Allocator + Clone

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 Values<'a, T>

impl<'a, T> FusedIterator for ValuesMut<'a, T>

impl<'a, T> FusedIterator for Drain<'a, T>

impl<'a, T> FusedIterator for ValueIter<'a, T>

impl<'a, T> FusedIterator for ValueIterMut<'a, T>

impl<T> FusedIterator for IntoIter<T>

impl<'a, T> FusedIterator for ValueDrain<'a, T>

impl<'a> FusedIterator for ArrayIter<'a>

impl<'a, K, V> FusedIterator for Iter<'a, K, V>

impl<'a, K, V> FusedIterator for IterMut<'a, K, V>

impl<'a, T: Scalar, R: Dim, C: Dim, S: 'a + Storage<T, R, C>> FusedIterator for MatrixIter<'a, T, R, C, S>

impl<'a, T: Scalar, R: Dim, C: Dim, S: 'a + StorageMut<T, R, C>> FusedIterator for MatrixIterMut<'a, T, R, C, S>

impl<D, R, T> FusedIterator for DistIter<D, R, T> where
    D: Distribution<T>,
    R: Rng

impl<'r, 't> FusedIterator for Matches<'r, 't>

impl<'r, 't> FusedIterator for CaptureMatches<'r, 't>

impl<'r, 't> FusedIterator for Split<'r, 't>

impl<'r, 't> FusedIterator for SplitN<'r, 't>

impl<'r> FusedIterator for CaptureNames<'r>

impl<'c, 't> FusedIterator for SubCaptureMatches<'c, 't>

impl<'a> FusedIterator for SetMatchesIter<'a>

impl<'a> FusedIterator for SetMatchesIter<'a>

impl<'r> FusedIterator for CaptureNames<'r>

impl<'r, 't> FusedIterator for Split<'r, 't>

impl<'r, 't> FusedIterator for SplitN<'r, 't>

impl<'c, 't> FusedIterator for SubCaptureMatches<'c, 't>

impl<'r, 't> FusedIterator for CaptureMatches<'r, 't>

impl<'r, 't> FusedIterator for Matches<'r, 't>

impl<'de, R, T> FusedIterator for StreamDeserializer<'de, R, T> where
    R: Read<'de> + Fused,
    T: Deserialize<'de>, 

impl<'a> FusedIterator for Iter<'a>

impl<'a> FusedIterator for IterMut<'a>

impl<'a> FusedIterator for Keys<'a>

impl<'a> FusedIterator for Values<'a>

impl<'a> FusedIterator for ValuesMut<'a>

impl<T> FusedIterator for IntoIter<T>

impl<T> FusedIterator for Iter<'_, T>

impl<T> FusedIterator for IterMut<'_, T>

impl<T> FusedIterator for Drain<'_, T>

impl<'a, T: Array> FusedIterator for Drain<'a, T>

impl<A: Array> FusedIterator for IntoIter<A>

impl<T: Send + Sync> FusedIterator for Iter<'_, T>

impl<T: Send> FusedIterator for IterMut<'_, T>

impl<T: Send> FusedIterator for IntoIter<T>

impl<'p, A, I> FusedIterator for ArrayVecSplice<'p, A, I> where
    A: Array,
    I: Iterator<Item = A::Item>, 

impl<'a, T: 'a + Default> FusedIterator for ArrayVecDrain<'a, T>

impl<'p, 's, T: Default> FusedIterator for SliceVecDrain<'p, 's, T>

impl<'p, A, I> FusedIterator for TinyVecSplice<'p, A, I> where
    A: Array,
    I: Iterator<Item = A::Item>,