pub trait StreamingIterator {
type Item: ?Sized;
Show 32 methods
fn advance(&mut self);
fn get(&self) -> Option<&Self::Item>;
fn next(&mut self) -> Option<&Self::Item> { ... }
fn size_hint(&self) -> (usize, Option<usize>) { ... }
fn is_done(&self) -> bool { ... }
fn all<F>(&mut self, f: F) -> bool
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn any<F>(&mut self, f: F) -> bool
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn by_ref(&mut self) -> &mut Self
where
Self: Sized,
{ ... }
fn chain<I>(self, other: I) -> Chain<Self, I>
where
Self: Sized,
I: StreamingIterator<Item = Self::Item> + Sized,
{ ... }
fn cloned(self) -> Cloned<Self> ⓘ
where
Self: Sized,
Self::Item: Clone,
{ ... }
fn copied(self) -> Copied<Self> ⓘ
where
Self: Sized,
Self::Item: Copy,
{ ... }
fn count(self) -> usize
where
Self: Sized,
{ ... }
fn filter<F>(self, f: F) -> Filter<Self, F>
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, B, F>
where
Self: Sized,
F: FnMut(&Self::Item) -> Option<B>,
{ ... }
fn flat_map<J, F>(self, f: F) -> FlatMap<Self, J, F>
where
Self: Sized,
J: StreamingIterator,
F: FnMut(&Self::Item) -> J,
{ ... }
fn filter_map_deref<B, F>(self, f: F) -> FilterMapDeref<Self, F> ⓘ
where
Self: Sized,
F: FnMut(&Self::Item) -> Option<B>,
{ ... }
fn find<F>(&mut self, f: F) -> Option<&Self::Item>
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn fuse(self) -> Fuse<Self>
where
Self: Sized,
{ ... }
fn inspect<F>(self, f: F) -> Inspect<Self, F>
where
F: FnMut(&Self::Item),
Self: Sized,
{ ... }
fn map<B, F>(self, f: F) -> Map<Self, B, F>
where
Self: Sized,
F: FnMut(&Self::Item) -> B,
{ ... }
fn map_deref<B, F>(self, f: F) -> MapDeref<Self, F> ⓘ
where
Self: Sized,
F: FnMut(&Self::Item) -> B,
{ ... }
fn map_ref<B: ?Sized, F>(self, f: F) -> MapRef<Self, F>
where
Self: Sized,
F: Fn(&Self::Item) -> &B,
{ ... }
fn nth(&mut self, n: usize) -> Option<&Self::Item> { ... }
fn owned(self) -> Owned<Self> ⓘ
where
Self: Sized,
Self::Item: ToOwned,
{ ... }
fn position<F>(&mut self, f: F) -> Option<usize>
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn skip(self, n: usize) -> Skip<Self>
where
Self: Sized,
{ ... }
fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn take(self, n: usize) -> Take<Self>
where
Self: Sized,
{ ... }
fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
{ ... }
fn rev(self) -> Rev<Self>
where
Self: Sized + DoubleEndedStreamingIterator,
{ ... }
fn fold<B, F>(self, init: B, f: F) -> B
where
Self: Sized,
F: FnMut(B, &Self::Item) -> B,
{ ... }
fn for_each<F>(self, f: F)
where
Self: Sized,
F: FnMut(&Self::Item),
{ ... }
}
Expand description
An interface for dealing with streaming iterators.
Required Associated Types§
Required Methods§
Provided Methods§
sourcefn next(&mut self) -> Option<&Self::Item>
fn next(&mut self) -> Option<&Self::Item>
Advances the iterator and returns the next value.
The behavior of calling this method after the end of the iterator has been reached is unspecified.
The default implementation simply calls advance
followed by get
.
sourcefn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator.
sourcefn all<F>(&mut self, f: F) -> boolwhere
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn all<F>(&mut self, f: F) -> boolwhere
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Determines if all elements of the iterator satisfy a predicate.
sourcefn any<F>(&mut self, f: F) -> boolwhere
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn any<F>(&mut self, f: F) -> boolwhere
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Determines if any elements of the iterator satisfy a predicate.
sourcefn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Borrows an iterator, rather than consuming it.
This is useful to allow the application of iterator adaptors while still retaining ownership of the original adaptor.
sourcefn chain<I>(self, other: I) -> Chain<Self, I>where
Self: Sized,
I: StreamingIterator<Item = Self::Item> + Sized,
fn chain<I>(self, other: I) -> Chain<Self, I>where
Self: Sized,
I: StreamingIterator<Item = Self::Item> + Sized,
Consumes two iterators and returns a new iterator that iterates over both in sequence.
sourcefn cloned(self) -> Cloned<Self> ⓘwhere
Self: Sized,
Self::Item: Clone,
fn cloned(self) -> Cloned<Self> ⓘwhere
Self: Sized,
Self::Item: Clone,
Produces a normal, non-streaming, iterator by cloning the elements of this iterator.
sourcefn copied(self) -> Copied<Self> ⓘwhere
Self: Sized,
Self::Item: Copy,
fn copied(self) -> Copied<Self> ⓘwhere
Self: Sized,
Self::Item: Copy,
Produces a normal, non-streaming, iterator by copying the elements of this iterator.
sourcefn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
Consumes the iterator, counting the number of remaining elements and returning it.
sourcefn filter<F>(self, f: F) -> Filter<Self, F>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn filter<F>(self, f: F) -> Filter<Self, F>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Creates an iterator which uses a closure to determine if an element should be yielded.
sourcefn filter_map<B, F>(self, f: F) -> FilterMap<Self, B, F>where
Self: Sized,
F: FnMut(&Self::Item) -> Option<B>,
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, B, F>where
Self: Sized,
F: FnMut(&Self::Item) -> Option<B>,
Creates an iterator which both filters and maps by applying a closure to elements.
sourcefn flat_map<J, F>(self, f: F) -> FlatMap<Self, J, F>where
Self: Sized,
J: StreamingIterator,
F: FnMut(&Self::Item) -> J,
fn flat_map<J, F>(self, f: F) -> FlatMap<Self, J, F>where
Self: Sized,
J: StreamingIterator,
F: FnMut(&Self::Item) -> J,
Creates an iterator which flattens iterators obtained by applying a closure to elements. Note that the returned iterators must be streaming iterators.
sourcefn filter_map_deref<B, F>(self, f: F) -> FilterMapDeref<Self, F> ⓘwhere
Self: Sized,
F: FnMut(&Self::Item) -> Option<B>,
fn filter_map_deref<B, F>(self, f: F) -> FilterMapDeref<Self, F> ⓘwhere
Self: Sized,
F: FnMut(&Self::Item) -> Option<B>,
Creates a regular, non-streaming iterator which both filters and maps by applying a closure to elements.
sourcefn find<F>(&mut self, f: F) -> Option<&Self::Item>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn find<F>(&mut self, f: F) -> Option<&Self::Item>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Returns the first element of the iterator that satisfies the predicate.
sourcefn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Creates an iterator which is “well behaved” at the beginning and end of iteration.
The behavior of calling get
before iteration has been started, and of continuing to call
advance
after get
has returned None
is normally unspecified, but this guarantees that
get
will return None
in both cases.
sourcefn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnMut(&Self::Item),
Self: Sized,
fn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnMut(&Self::Item),
Self: Sized,
Call a closure on each element, passing the element on.
The closure is called upon calls to advance
or advance_back
, and exactly once per element
regardless of how many times (if any) get
is called.
sourcefn map<B, F>(self, f: F) -> Map<Self, B, F>where
Self: Sized,
F: FnMut(&Self::Item) -> B,
fn map<B, F>(self, f: F) -> Map<Self, B, F>where
Self: Sized,
F: FnMut(&Self::Item) -> B,
Creates an iterator which transforms elements of this iterator by passing them to a closure.
sourcefn map_deref<B, F>(self, f: F) -> MapDeref<Self, F> ⓘwhere
Self: Sized,
F: FnMut(&Self::Item) -> B,
fn map_deref<B, F>(self, f: F) -> MapDeref<Self, F> ⓘwhere
Self: Sized,
F: FnMut(&Self::Item) -> B,
Creates a regular, non-streaming iterator which transforms elements of this iterator by passing them to a closure.
sourcefn map_ref<B: ?Sized, F>(self, f: F) -> MapRef<Self, F>where
Self: Sized,
F: Fn(&Self::Item) -> &B,
fn map_ref<B: ?Sized, F>(self, f: F) -> MapRef<Self, F>where
Self: Sized,
F: Fn(&Self::Item) -> &B,
Creates an iterator which transforms elements of this iterator by passing them to a closure.
Unlike map
, this method takes a closure that returns a reference into the original value.
The mapping function is only guaranteed to be called at some point before an element
is actually consumed. This allows an expensive mapping function to be ignored
during skipping (e.g. nth
).
sourcefn nth(&mut self, n: usize) -> Option<&Self::Item>
fn nth(&mut self, n: usize) -> Option<&Self::Item>
Consumes the first n
elements of the iterator, returning the next one.
sourcefn owned(self) -> Owned<Self> ⓘwhere
Self: Sized,
Self::Item: ToOwned,
fn owned(self) -> Owned<Self> ⓘwhere
Self: Sized,
Self::Item: ToOwned,
Creates a normal, non-streaming, iterator with elements produced by calling to_owned
on
the elements of this iterator.
Requires the alloc
feature.
sourcefn position<F>(&mut self, f: F) -> Option<usize>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn position<F>(&mut self, f: F) -> Option<usize>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Returns the index of the first element of the iterator matching a predicate.
sourcefn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
Creates an iterator which skips the first n
elements.
sourcefn skip_while<F>(self, f: F) -> SkipWhile<Self, F>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Creates an iterator that skips initial elements matching a predicate.
sourcefn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
Creates an iterator which only returns the first n
elements.
sourcefn take_while<F>(self, f: F) -> TakeWhile<Self, F>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
fn take_while<F>(self, f: F) -> TakeWhile<Self, F>where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
Creates an iterator which only returns initial elements matching a predicate.
sourcefn rev(self) -> Rev<Self>where
Self: Sized + DoubleEndedStreamingIterator,
fn rev(self) -> Rev<Self>where
Self: Sized + DoubleEndedStreamingIterator,
Creates an iterator which returns elemens in the opposite order.