Trait core::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<I: FusedIterator + ?Sized, A: Allocator> FusedIterator for Box<I, A>

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

impl<T> FusedIterator for IntoIter<T>

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

impl<T: Ord> FusedIterator for DrainSorted<'_, T>

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, F> FusedIterator for DrainFilter<'_, K, V, F>where
    F: FnMut(&K, &mut V) -> bool,

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

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

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

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

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

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

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

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

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

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

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

impl<T: Ord> FusedIterator for Union<'_, T>

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

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

impl<T> FusedIterator for IntoIter<T>

impl<T, A: Allocator> FusedIterator for Drain<'_, T, A>

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

impl<T, A: Allocator> FusedIterator for IntoIter<T, A>

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

impl FusedIterator for Drain<'_>

impl<T, A: Allocator> FusedIterator for Drain<'_, T, A>

impl<T, A: Allocator> FusedIterator for IntoIter<T, A>

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

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

impl<K, V> FusedIterator for IntoIter<K, V>

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> FusedIterator for IntoKeys<K, V>

impl<K, V> FusedIterator for IntoValues<K, V>

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

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

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

impl<K> FusedIterator for IntoIter<K>

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

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

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

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

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

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

impl FusedIterator for Incoming<'_>

impl FusedIterator for Iter<'_>