pub struct MapIterDone<Outer, F, Inner, InnerD>where
F: Fn(Outer::D) -> Inner,
Outer: StreamIterator,
Inner: StreamIterator<D = InnerD, P = Outer::P>,{ /* private fields */ }Expand description
Wrapper type for map_iter combinator that flattens nested iterator patterns.
The outer iterator yields Stream items which are transformed by the mapper
into inner iterators. Each inner iterator is drained until None before polling
the outer for the next item.
Trait Implementations§
Source§impl<Outer, F, Inner, InnerD> Iterator for MapIterDone<Outer, F, Inner, InnerD>where
F: Fn(Outer::D) -> Inner,
Outer: StreamIterator,
Inner: StreamIterator<D = InnerD, P = Outer::P>,
impl<Outer, F, Inner, InnerD> Iterator for MapIterDone<Outer, F, Inner, InnerD>where
F: Fn(Outer::D) -> Inner,
Outer: StreamIterator,
Inner: StreamIterator<D = InnerD, P = Outer::P>,
Source§type Item = Stream<<Inner as StreamIterator>::D, <Outer as StreamIterator>::P>
type Item = Stream<<Inner as StreamIterator>::D, <Outer as StreamIterator>::P>
The type of the elements being iterated over.
Source§fn next(&mut self) -> Option<Self::Item>
fn next(&mut self) -> Option<Self::Item>
Advances the iterator and returns the next value. Read more
Source§fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_next_chunk)Advances the iterator and returns an array containing the next
N values. Read more1.0.0 (const: unstable) · Source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator. Read more
1.0.0 (const: unstable) · Source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 (const: unstable) · Source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
Consumes the iterator, returning the last element. Read more
Source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
🔬This is a nightly-only experimental API. (
iter_advance_by)Advances the iterator by
n elements. Read more1.0.0 (const: unstable) · Source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
Returns the
nth element of the iterator. Read more1.28.0 (const: unstable) · Source§fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
Creates an iterator starting at the same point, but stepping by
the given amount at each iteration. Read more
1.0.0 (const: unstable) · Source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 (const: unstable) · Source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
‘Zips up’ two iterators into a single iterator of pairs. Read more
Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
🔬This is a nightly-only experimental API. (
iter_intersperse)Creates a new iterator which places a copy of
separator between items
of the original iterator. Read moreSource§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
🔬This is a nightly-only experimental API. (
iter_intersperse)Creates a new iterator which places an item generated by
separator
between items of the original iterator. Read more1.0.0 (const: unstable) · Source§fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
Takes a closure and creates an iterator which calls that closure on each
element. Read more
1.21.0 (const: unstable) · Source§fn for_each<F>(self, f: F)
fn for_each<F>(self, f: F)
Calls a closure on each element of an iterator. Read more
1.0.0 (const: unstable) · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
Creates an iterator which uses a closure to determine if an element
should be yielded. Read more
1.0.0 (const: unstable) · Source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
Creates an iterator that both filters and maps. Read more
1.0.0 (const: unstable) · Source§fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
Creates an iterator which gives the current iteration count as well as
the next value. Read more
1.0.0 (const: unstable) · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
Creates an iterator that yields elements based on a predicate. Read more
1.57.0 (const: unstable) · Source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 (const: unstable) · Source§fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
Creates an iterator that skips the first
n elements. Read more1.0.0 (const: unstable) · Source§fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
Creates an iterator that yields the first
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 (const: unstable) · Source§fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> ⓘ
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> ⓘ
1.0.0 (const: unstable) · Source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
Creates an iterator that works like map, but flattens nested structure. Read more
Source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
🔬This is a nightly-only experimental API. (
iter_map_windows)Calls the given function
f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more1.0.0 (const: unstable) · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
Does something with each element of an iterator, passing the value on. Read more
1.0.0 (const: unstable) · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adapter for this instance of
Iterator. Read more1.0.0 (const: unstable) · Source§fn collect<B>(self) -> B
fn collect<B>(self) -> B
Transforms an iterator into a collection. Read more
Source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
🔬This is a nightly-only experimental API. (
iter_collect_into)Collects all the items from an iterator into a collection. Read more
1.0.0 (const: unstable) · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Consumes an iterator, creating two collections from it. Read more
Source§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
🔬This is a nightly-only experimental API. (
iter_is_partitioned)Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return
true precede all those that return false. Read more1.27.0 (const: unstable) · Source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
An iterator method that applies a function as long as it returns
successfully, producing a single, final value. Read more
1.27.0 (const: unstable) · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
An iterator method that applies a fallible function to each item in the
iterator, stopping at the first error and returning that error. Read more
1.0.0 (const: unstable) · Source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
Folds every element into an accumulator by applying an operation,
returning the final result. Read more
1.51.0 (const: unstable) · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Reduces the elements to a single one, by repeatedly applying a reducing
operation. Read more
Source§fn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
🔬This is a nightly-only experimental API. (
iterator_try_reduce)Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 (const: unstable) · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
Tests if every element of the iterator matches a predicate. Read more
1.0.0 (const: unstable) · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
Tests if any element of the iterator matches a predicate. Read more
1.0.0 (const: unstable) · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 (const: unstable) · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Applies function to the elements of iterator and returns
the first non-none result. Read more
Source§fn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
🔬This is a nightly-only experimental API. (
try_find)Applies function to the elements of iterator and returns
the first true result or the first error. Read more
1.0.0 (const: unstable) · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
Searches for an element in an iterator, returning its index. Read more
1.6.0 (const: unstable) · Source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the maximum value from the
specified function. Read more
1.15.0 (const: unstable) · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the maximum value with respect to the
specified comparison function. Read more
1.6.0 (const: unstable) · Source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the minimum value from the
specified function. Read more
1.15.0 (const: unstable) · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the minimum value with respect to the
specified comparison function. Read more
1.0.0 (const: unstable) · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
Converts an iterator of pairs into a pair of containers. Read more
1.36.0 (const: unstable) · Source§fn copied<'a, T>(self) -> Copied<Self> ⓘ
fn copied<'a, T>(self) -> Copied<Self> ⓘ
Creates an iterator which copies all of its elements. Read more
Source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_array_chunks)Returns an iterator over
N elements of the iterator at a time. Read more1.11.0 (const: unstable) · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
Iterates over the entire iterator, multiplying all the elements. Read more
Source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
🔬This is a nightly-only experimental API. (
iter_order_by)Lexicographically compares the elements of this
Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 (const: unstable) · Source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
Lexicographically compares the
PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moreSource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
🔬This is a nightly-only experimental API. (
iter_order_by)Lexicographically compares the elements of this
Iterator with those
of another with respect to the specified comparison function. Read moreSource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
🔬This is a nightly-only experimental API. (
iter_order_by)1.5.0 (const: unstable) · Source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
less than those of another. Read more1.5.0 (const: unstable) · Source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
less or equal to those of another. Read more1.5.0 (const: unstable) · Source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
greater than those of another. Read more1.5.0 (const: unstable) · Source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
greater than or equal to those of another. Read more1.82.0 (const: unstable) · Source§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
Checks if the elements of this iterator are sorted using the given comparator function. Read more
Source§impl<Outer, F, Inner, InnerD> WakeableStream for MapIterDone<Outer, F, Inner, InnerD>where
F: Fn(Outer::D) -> Inner,
Outer: StreamIterator,
Inner: StreamIterator<D = InnerD, P = Outer::P>,
Inner::D: 'static,
Outer::P: 'static,
impl<Outer, F, Inner, InnerD> WakeableStream for MapIterDone<Outer, F, Inner, InnerD>where
F: Fn(Outer::D) -> Inner,
Outer: StreamIterator,
Inner: StreamIterator<D = InnerD, P = Outer::P>,
Inner::D: 'static,
Outer::P: 'static,
Source§fn wake(&mut self, cb: WakeCallback) -> WakeResult
fn wake(&mut self, cb: WakeCallback) -> WakeResult
Register
cb to be called once when the stream becomes ready (an item is
available, or the queue closes). Returns WakeResult::Successful if the
stream can deliver the signal, WakeResult::NotSupported otherwise.Auto Trait Implementations§
impl<Outer, F, Inner, InnerD> Freeze for MapIterDone<Outer, F, Inner, InnerD>
impl<Outer, F, Inner, InnerD> RefUnwindSafe for MapIterDone<Outer, F, Inner, InnerD>where
Outer: RefUnwindSafe,
F: RefUnwindSafe,
Option<Inner>: RefUnwindSafe,
PhantomData<(Outer, Inner, InnerD)>: RefUnwindSafe,
impl<Outer, F, Inner, InnerD> Send for MapIterDone<Outer, F, Inner, InnerD>
impl<Outer, F, Inner, InnerD> Sync for MapIterDone<Outer, F, Inner, InnerD>
impl<Outer, F, Inner, InnerD> Unpin for MapIterDone<Outer, F, Inner, InnerD>
impl<Outer, F, Inner, InnerD> UnsafeUnpin for MapIterDone<Outer, F, Inner, InnerD>where
Outer: UnsafeUnpin,
F: UnsafeUnpin,
Option<Inner>: UnsafeUnpin,
PhantomData<(Outer, Inner, InnerD)>: UnsafeUnpin,
impl<Outer, F, Inner, InnerD> UnwindSafe for MapIterDone<Outer, F, Inner, InnerD>where
Outer: UnwindSafe,
F: UnwindSafe,
Option<Inner>: UnwindSafe,
PhantomData<(Outer, Inner, InnerD)>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<I> IntoIterator for Iwhere
I: Iterator,
impl<I> IntoIterator for Iwhere
I: Iterator,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<M, D, P> StreamIterator for M
impl<M, D, P> StreamIterator for M
Source§impl<S> StreamIteratorExt for Swhere
S: StreamIterator + 'static,
impl<S> StreamIteratorExt for Swhere
S: StreamIterator + 'static,
Source§fn map_done<F, R>(self, f: F) -> MapDone<S, R> ⓘ
fn map_done<F, R>(self, f: F) -> MapDone<S, R> ⓘ
Transform Next (Done) values using the provided function. Read more
Source§fn map_pending<F, R>(self, f: F) -> MapPending<S, R> ⓘ
fn map_pending<F, R>(self, f: F) -> MapPending<S, R> ⓘ
Transform Pending values using the provided function. Read more
Source§fn map_pending_and_done<F, R>(self, f: F) -> MapPendingAndDone<S, R> ⓘ
fn map_pending_and_done<F, R>(self, f: F) -> MapPendingAndDone<S, R> ⓘ
Transform both Pending and Next values with a single function. Read more
Source§fn filter_done<F>(self, f: F) -> FilterDone<S> ⓘ
fn filter_done<F>(self, f: F) -> FilterDone<S> ⓘ
Filter Next (Done) values using the provided predicate. Read more
Source§fn map_delayed<F>(self, f: F) -> MapDelayed<S> ⓘ
fn map_delayed<F>(self, f: F) -> MapDelayed<S> ⓘ
Transform Delayed durations.
Source§fn split_collector<Pred>(
self,
predicate: Pred,
queue_size: usize,
) -> (SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>, SSplitCollectorContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
fn split_collector<Pred>(
self,
predicate: Pred,
queue_size: usize,
) -> (SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>, SSplitCollectorContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
Split the iterator into an observer branch and a continuation branch. Read more
Source§fn broadcast<Pred>(
self,
n: usize,
predicate: Pred,
queue_size: usize,
) -> (Vec<SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>>, SBroadcastContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
fn broadcast<Pred>(
self,
n: usize,
predicate: Pred,
queue_size: usize,
) -> (Vec<SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>>, SBroadcastContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
Fan each matched
Stream item out to N observer branches (each gets a
clone), returning the N observers plus a continuation carrying the full
stream onward (F45 N-way broadcast). Zero loss, slowest-gates: if any branch
is full the source yields Stream::Wait and retries until every open branch
has vacancy, so no item is dropped. A dropped observer closes its branch and
is skipped. See BroadcastPolicy::Backpressure. Read moreSource§fn broadcast_lossy<Pred>(
self,
n: usize,
predicate: Pred,
queue_size: usize,
) -> (Vec<SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>>, SBroadcastContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
fn broadcast_lossy<Pred>(
self,
n: usize,
predicate: Pred,
queue_size: usize,
) -> (Vec<SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>>, SBroadcastContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
Like
broadcast but the source never stalls — a full
branch drops the incoming (newest) item (BroadcastPolicy::DropNewest);
a slow branch keeps its backlog and falls off the live edge. Read moreSource§fn broadcast_latest<Pred>(
self,
n: usize,
predicate: Pred,
queue_size: usize,
) -> (Vec<SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>>, SBroadcastContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
fn broadcast_latest<Pred>(
self,
n: usize,
predicate: Pred,
queue_size: usize,
) -> (Vec<SCollectorStreamIterator<<S as StreamIterator>::D, <S as StreamIterator>::P>>, SBroadcastContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> bool + 'static,
Like
broadcast but the source never stalls and every
branch always holds the latest — a full branch evicts its oldest
(BroadcastPolicy::DropOldest, via force_push). No receiver is kicked off
the live edge; only intermediate history is lost under pressure. Read moreSource§fn split_collect_until<Pred>(
self,
predicate: Pred,
queue_size: usize,
) -> (SSplitUntilObserver<<S as StreamIterator>::D, <S as StreamIterator>::P>, SSplitUntilContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> CollectionState + 'static,
fn split_collect_until<Pred>(
self,
predicate: Pred,
queue_size: usize,
) -> (SSplitUntilObserver<<S as StreamIterator>::D, <S as StreamIterator>::P>, SSplitUntilContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P>)where
S: Sized,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
Pred: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> CollectionState + 'static,
Split the iterator into an observer branch and a continuation branch,
closing the observer when the predicate signals close.
Source§fn map_circuit<F>(self, f: F) -> MapCircuit<S> ⓘwhere
S: Sized,
F: Fn(Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> ShortCircuit<<S as StreamIterator>::D, <S as StreamIterator>::P> + 'static,
fn map_circuit<F>(self, f: F) -> MapCircuit<S> ⓘwhere
S: Sized,
F: Fn(Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> ShortCircuit<<S as StreamIterator>::D, <S as StreamIterator>::P> + 'static,
Short-circuit the iterator based on a circuit function. Read more
Source§fn split_collector_map<F, DM, PM>(
self,
transform: F,
queue_size: usize,
) -> (SSplitCollectorMapObserver<DM, PM>, SSplitCollectorMapContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P, DM, PM>)where
S: Sized,
DM: Clone + 'static,
PM: Clone + 'static,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
F: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> (bool, Option<Stream<DM, PM>>) + 'static,
fn split_collector_map<F, DM, PM>(
self,
transform: F,
queue_size: usize,
) -> (SSplitCollectorMapObserver<DM, PM>, SSplitCollectorMapContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P, DM, PM>)where
S: Sized,
DM: Clone + 'static,
PM: Clone + 'static,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
F: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> (bool, Option<Stream<DM, PM>>) + 'static,
Split the iterator into an observer branch and a continuation branch,
mapping matched items to a different type before sending to the observer.
Source§fn split_collect_one_map<F, DM, PM>(
self,
transform: F,
) -> (SSplitCollectorMapObserver<DM, PM>, SSplitCollectorMapContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P, DM, PM>)where
S: Sized,
DM: Clone + 'static,
PM: Clone + 'static,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
F: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> (bool, Option<Stream<DM, PM>>) + 'static,
fn split_collect_one_map<F, DM, PM>(
self,
transform: F,
) -> (SSplitCollectorMapObserver<DM, PM>, SSplitCollectorMapContinuation<S, <S as StreamIterator>::D, <S as StreamIterator>::P, DM, PM>)where
S: Sized,
DM: Clone + 'static,
PM: Clone + 'static,
<S as StreamIterator>::D: Clone,
<S as StreamIterator>::P: Clone,
F: Fn(&Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> (bool, Option<Stream<DM, PM>>) + 'static,
Convenience method:
split_collector_map with queue_size = 1.Source§fn flatten_next(self) -> SFlattenNext<S> ⓘwhere
S: Sized,
<S as StreamIterator>::D: IntoIterator,
<<S as StreamIterator>::D as IntoIterator>::Item: 'static,
fn flatten_next(self) -> SFlattenNext<S> ⓘwhere
S: Sized,
<S as StreamIterator>::D: IntoIterator,
<<S as StreamIterator>::D as IntoIterator>::Item: 'static,
Flatten Next (Done) values that implement
IntoIterator. Read moreSource§fn flatten_pending(self) -> SFlattenPending<S> ⓘwhere
S: Sized,
<S as StreamIterator>::P: IntoIterator,
<<S as StreamIterator>::P as IntoIterator>::Item: 'static,
fn flatten_pending(self) -> SFlattenPending<S> ⓘwhere
S: Sized,
<S as StreamIterator>::P: IntoIterator,
<<S as StreamIterator>::P as IntoIterator>::Item: 'static,
Flatten Pending values that implement
IntoIterator. Read moreSource§fn flat_map_next<F, U>(self, f: F) -> SFlatMapNext<S, F, U> ⓘwhere
S: Sized,
F: Fn(<S as StreamIterator>::D) -> U + 'static,
U: IntoIterator,
<U as IntoIterator>::Item: 'static,
fn flat_map_next<F, U>(self, f: F) -> SFlatMapNext<S, F, U> ⓘwhere
S: Sized,
F: Fn(<S as StreamIterator>::D) -> U + 'static,
U: IntoIterator,
<U as IntoIterator>::Item: 'static,
Flat map Next (Done) values - transform and flatten in one operation. Read more
Source§fn flat_map_pending<F, U>(self, f: F) -> SFlatMapPending<S, F, U> ⓘwhere
S: Sized,
F: Fn(<S as StreamIterator>::P) -> U + 'static,
U: IntoIterator,
<U as IntoIterator>::Item: 'static,
fn flat_map_pending<F, U>(self, f: F) -> SFlatMapPending<S, F, U> ⓘwhere
S: Sized,
F: Fn(<S as StreamIterator>::P) -> U + 'static,
U: IntoIterator,
<U as IntoIterator>::Item: 'static,
Flat map Pending values - transform and flatten in one operation. Read more
Source§fn map_state<F, R>(self, f: F) -> SMapState<S, F, R> ⓘwhere
F: Fn(Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> Stream<R, <S as StreamIterator>::P> + 'static,
R: 'static,
fn map_state<F, R>(self, f: F) -> SMapState<S, F, R> ⓘwhere
F: Fn(Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> Stream<R, <S as StreamIterator>::P> + 'static,
R: 'static,
Transform any Stream state with full state access.
Source§fn inspect_state<F>(self, f: F) -> SInspectState<S, F> ⓘ
fn inspect_state<F>(self, f: F) -> SInspectState<S, F> ⓘ
Side-effect on any Stream state.
Source§fn filter_state<F>(self, f: F) -> SFilterState<S, F> ⓘ
fn filter_state<F>(self, f: F) -> SFilterState<S, F> ⓘ
Filter based on full Stream state. Non-matching items return
Stream::Ignore.Source§fn take_while_state<F>(self, predicate: F) -> STakeWhileState<S, F> ⓘ
fn take_while_state<F>(self, predicate: F) -> STakeWhileState<S, F> ⓘ
Take items while state predicate returns true.
Source§fn transform_until<F>(self, transformer: F) -> STransformUntil<S, F> ⓘwhere
F: Fn(Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> Option<Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>> + 'static,
fn transform_until<F>(self, transformer: F) -> STransformUntil<S, F> ⓘwhere
F: Fn(Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>) -> Option<Stream<<S as StreamIterator>::D, <S as StreamIterator>::P>> + 'static,
Transform items until transformer returns None.
When transformer returns None, iterator terminates.
Source§fn skip_while_state<F>(self, predicate: F) -> SSkipWhileState<S, F> ⓘ
fn skip_while_state<F>(self, predicate: F) -> SSkipWhileState<S, F> ⓘ
Skip items while state predicate returns true.
Source§fn take_state<F>(self, n: usize, state_predicate: F) -> STakeState<S, F> ⓘ
fn take_state<F>(self, n: usize, state_predicate: F) -> STakeState<S, F> ⓘ
Take at most n items matching state predicate.
Source§fn skip_state<F>(self, n: usize, state_predicate: F) -> SSkipState<S, F> ⓘ
fn skip_state<F>(self, n: usize, state_predicate: F) -> SSkipState<S, F> ⓘ
Skip first n items matching state predicate.
Source§fn enumerate(self) -> SEnumerate<S> ⓘ
fn enumerate(self) -> SEnumerate<S> ⓘ
Add index to Next items, changing Done type from D to (usize, D).
Source§fn fold<F, R>(self, init: R, f: F) -> SFold<S, F, R> ⓘ
fn fold<F, R>(self, init: R, f: F) -> SFold<S, F, R> ⓘ
Fold/accumulate values. Returns final accumulator when done.
Source§fn into_collect_future(self) -> StreamCollectFuture<S> ⓘ
fn into_collect_future(self) -> StreamCollectFuture<S> ⓘ
Source§fn into_ready_future(self) -> StreamReadyFuture<S> ⓘwhere
S: WakeableStream,
fn into_ready_future(self) -> StreamReadyFuture<S> ⓘwhere
S: WakeableStream,
Source§fn into_pending_future(self) -> StreamPendingFuture<S> ⓘwhere
S: WakeableStream,
fn into_pending_future(self) -> StreamPendingFuture<S> ⓘwhere
S: WakeableStream,
Source§fn into_future_stream(self) -> StreamAsFutureStream<S>
fn into_future_stream(self) -> StreamAsFutureStream<S>
Wrap into a
futures_core::Stream that yields each Stream<D, P> item as-is.Source§fn into_next_stream(self) -> StreamNextStream<S>where
S: WakeableStream,
fn into_next_stream(self) -> StreamNextStream<S>where
S: WakeableStream,
Wrap into a
futures_core::Stream<Item = D> that surfaces Next / Spread
Done payloads and parks over in-band control states, enabling
while let Some(chunk) = body.next().await consumption (F45 Resolution 5).fn try_map_done<F, R>(self, f: F) -> TryMapDone<S, R> ⓘ
fn collect_result(self) -> Vec<<S as StreamIterator>::D>
fn collect_one(self) -> Option<<S as StreamIterator>::D>
Source§fn split_collect_one<Pred>(
self,
predicate: Pred,
) -> (SCollectorStreamIterator<Self::D, Self::P>, SSplitCollectorContinuation<Self, Self::D, Self::P>)
fn split_collect_one<Pred>( self, predicate: Pred, ) -> (SCollectorStreamIterator<Self::D, Self::P>, SSplitCollectorContinuation<Self, Self::D, Self::P>)
Convenience method:
split_collector with queue_size = 1.Source§fn first_next(self) -> Option<Self::D>
fn first_next(self) -> Option<Self::D>
Returns the first
Next value from the iterator, short-circuiting after finding it. Read moreSource§fn first_pending(self) -> Option<Self::P>
fn first_pending(self) -> Option<Self::P>
Returns the first
Pending value from the iterator, short-circuiting after finding it. Read moreSource§fn map_iter<F, InnerIter>(self, mapper: F) -> MapIter<Self, F, InnerIter> ⓘ
fn map_iter<F, InnerIter>(self, mapper: F) -> MapIter<Self, F, InnerIter> ⓘ
Flatten nested iterator patterns where outer yields inner iterators. Read more
Source§fn map_iter_done<F, InnerIter, InnerD>(
self,
mapper: F,
) -> MapIterDone<Self, F, InnerIter, InnerD> ⓘwhere
Self: Sized,
F: Fn(Self::D) -> InnerIter + 'static,
InnerIter: StreamIterator<D = InnerD, P = Self::P> + 'static,
fn map_iter_done<F, InnerIter, InnerD>(
self,
mapper: F,
) -> MapIterDone<Self, F, InnerIter, InnerD> ⓘwhere
Self: Sized,
F: Fn(Self::D) -> InnerIter + 'static,
InnerIter: StreamIterator<D = InnerD, P = Self::P> + 'static,
Map only Next (Done) values to a new StreamIterator, passing through
other states as Stream::Ignore. Read more
Source§fn map_iter_pending<F, InnerIter, InnerP>(
self,
mapper: F,
) -> MapIterPending<Self, F, InnerIter, InnerP> ⓘwhere
Self: Sized,
F: Fn(Self::P) -> InnerIter + 'static,
InnerIter: StreamIterator<D = Self::D, P = InnerP> + 'static,
fn map_iter_pending<F, InnerIter, InnerP>(
self,
mapper: F,
) -> MapIterPending<Self, F, InnerIter, InnerP> ⓘwhere
Self: Sized,
F: Fn(Self::P) -> InnerIter + 'static,
InnerIter: StreamIterator<D = Self::D, P = InnerP> + 'static,
Map only Pending values to a new StreamIterator, passing through
other states as Stream::Ignore. Read more
Source§fn take(
self,
n: usize,
) -> STakeState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘwhere
Self::D: 'static,
fn take(
self,
n: usize,
) -> STakeState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘwhere
Self::D: 'static,
Take at most n Next items.
Source§fn take_all(
self,
n: usize,
) -> STakeState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
fn take_all( self, n: usize, ) -> STakeState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
Take at most n items of any state.
Source§fn skip(
self,
n: usize,
) -> SSkipState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘwhere
Self::D: 'static,
fn skip(
self,
n: usize,
) -> SSkipState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘwhere
Self::D: 'static,
Skip first n Next items, return all others unchanged.
Source§fn skip_all(
self,
n: usize,
) -> SSkipState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
fn skip_all( self, n: usize, ) -> SSkipState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
Skip first n items of any state.
Source§fn take_while<F>(
self,
f: F,
) -> STakeWhileState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
fn take_while<F>( self, f: F, ) -> STakeWhileState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
Take while predicate true on Next values, pass through non-Next.
Source§fn take_while_any<F>(self, f: F) -> STakeWhileState<Self, F> ⓘ
fn take_while_any<F>(self, f: F) -> STakeWhileState<Self, F> ⓘ
Take while predicate true on ANY state.
Source§fn skip_while<F>(
self,
f: F,
) -> SSkipWhileState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
fn skip_while<F>( self, f: F, ) -> SSkipWhileState<Self, impl Fn(&Stream<Self::D, Self::P>) -> bool> ⓘ
Skip while predicate true on Next values, return all others.
Source§fn skip_while_any<F>(self, f: F) -> SSkipWhileState<Self, F> ⓘ
fn skip_while_any<F>(self, f: F) -> SSkipWhileState<Self, F> ⓘ
Skip while predicate true on ANY state.