Trait nom::lib::std::iter::FusedIterator1.26.0[][src]

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<'a> FusedIterator for Utf8Ancestors<'a>

impl<'a> FusedIterator for Utf8Components<'a>

impl FusedIterator for Iter<'_>

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

impl<T> FusedIterator for IntoIter<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<K, V> FusedIterator for Keys<'_, K, V>

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

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

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

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

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 Drain<'_, K, V>

impl<T> FusedIterator for IntoIter<T>

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

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

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

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

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

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

impl<I, J> FusedIterator for Interleave<I, J> where
    I: Iterator,
    J: Iterator<Item = I::Item>, 

impl<I, J> FusedIterator for InterleaveShortest<I, J> where
    I: FusedIterator,
    J: FusedIterator<Item = I::Item>, 

impl<I, J> FusedIterator for Product<I, J> where
    I: FusedIterator,
    J: Clone + FusedIterator,
    I::Item: Clone

impl<I, J, F> FusedIterator for MergeBy<I, J, F> where
    I: FusedIterator,
    J: FusedIterator<Item = I::Item>,
    F: MergePredicate<I::Item>, 

impl<I, T> FusedIterator for TupleCombinations<I, T> where
    I: FusedIterator,
    T: HasCombination<I>, 

impl<I, F, T, E> FusedIterator for FilterOk<I, F> where
    I: FusedIterator<Item = Result<T, E>>,
    F: FnMut(&T) -> bool

impl<I, F, T, U, E> FusedIterator for FilterMapOk<I, F> where
    I: FusedIterator<Item = Result<T, E>>,
    F: FnMut(T) -> Option<U>, 

impl<I, F> FusedIterator for Positions<I, F> where
    I: FusedIterator,
    F: FnMut(I::Item) -> bool

impl<I, F> FusedIterator for Update<I, F> where
    I: FusedIterator,
    F: FnMut(&mut I::Item), 

impl<I> FusedIterator for Combinations<I> where
    I: Iterator,
    I::Item: Clone

impl<I> FusedIterator for CombinationsWithReplacement<I> where
    I: Iterator,
    I::Item: Clone

impl<I, T, E> FusedIterator for FlattenOk<I, T, E> where
    I: FusedIterator<Item = Result<T, E>>,
    T: IntoIterator

impl<I, ElemF> FusedIterator for IntersperseWith<I, ElemF> where
    I: Iterator,
    ElemF: IntersperseElement<I::Item>, 

impl<I, F> FusedIterator for KMergeBy<I, F> where
    I: Iterator,
    F: KMergePredicate<I::Item>, 

impl<I, F> FusedIterator for PadUsing<I, F> where
    I: FusedIterator,
    F: FnMut(usize) -> I::Item

impl<I> FusedIterator for Powerset<I> where
    I: Iterator,
    I::Item: Clone

impl<A, I> FusedIterator for RcIter<I> where
    I: FusedIterator<Item = A>, 

impl<A> FusedIterator for RepeatN<A> where
    A: Clone

impl<I, T> FusedIterator for TupleWindows<I, T> where
    I: FusedIterator<Item = T::Item>,
    T: HomogeneousTuple + Clone,
    T::Item: Clone

impl<I, V, F> FusedIterator for UniqueBy<I, V, F> where
    I: FusedIterator,
    V: Eq + Hash,
    F: FnMut(&I::Item) -> V, 

impl<I> FusedIterator for Unique<I> where
    I: FusedIterator,
    I::Item: Eq + Hash + Clone

impl<T, U> FusedIterator for ZipLongest<T, U> where
    T: Iterator,
    U: Iterator

impl<'a> FusedIterator for Fds<'a>

impl<P> FusedIterator for Split<'_, P> where
    P: Pattern

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<'a, T: Array> FusedIterator for Drain<'a, T>

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