pub struct SelectAll<S: Stream> { /* private fields */ }Expand description
An unbounded set of streams
This “combinator” provides the ability to maintain a set of streams and drive them all to completion.
Streams are pushed into this set and their realized values are yielded as they become ready. Streams will only be polled when they generate notifications. This allows to coordinate a large number of streams.
Note that you can create a ready-made SelectAll via the
select_all function in the stream module, or you can start with an
empty set with the SelectAll::new constructor.
Implementations§
Trait Implementations§
Source§impl<S: Stream> Stream for SelectAll<S>
impl<S: Stream> Stream for SelectAll<S>
Source§fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>
fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>
Attempt to pull out the next value of this stream, returning
None if
the stream is finished. Read moreSource§fn wait(self) -> Wait<Self>where
Self: Sized,
fn wait(self) -> Wait<Self>where
Self: Sized,
Creates an iterator which blocks the current thread until each item of
this stream is resolved. Read more
Source§fn into_future(self) -> StreamFuture<Self>where
Self: Sized,
fn into_future(self) -> StreamFuture<Self>where
Self: Sized,
Converts this stream into a
Future. Read moreSource§fn filter<F>(self, f: F) -> Filter<Self, F>
fn filter<F>(self, f: F) -> Filter<Self, F>
Filters the values produced by this stream according to the provided
predicate. Read more
Source§fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F>
fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F>
Filters the values produced by this stream while simultaneously mapping
them to a different type. Read more
Source§fn then<F, U>(self, f: F) -> Then<Self, F, U>
fn then<F, U>(self, f: F) -> Then<Self, F, U>
Chain on a computation for when a value is ready, passing the resulting
item to the provided closure
f. Read moreSource§fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U>
fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U>
Chain on a computation for when a value is ready, passing the successful
results to the provided closure
f. Read moreSource§fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U>
fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U>
Chain on a computation for when an error happens, passing the
erroneous result to the provided closure
f. Read moreSource§fn collect(self) -> Collect<Self>where
Self: Sized,
fn collect(self) -> Collect<Self>where
Self: Sized,
Collect all of the values of this stream into a vector, returning a
future representing the result of that computation. Read more
Source§fn concat2(self) -> Concat2<Self>
fn concat2(self) -> Concat2<Self>
Concatenate all results of a stream into a single extendable
destination, returning a future representing the end result. Read more
Source§fn concat(self) -> Concat<Self>
fn concat(self) -> Concat<Self>
👎Deprecated since 0.1.14: please use
Stream::concat2 insteadConcatenate all results of a stream into a single extendable
destination, returning a future representing the end result. Read more
Source§fn fold<F, T, Fut>(self, init: T, f: F) -> Fold<Self, F, Fut, T>where
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
Self: Sized,
fn fold<F, T, Fut>(self, init: T, f: F) -> Fold<Self, F, Fut, T>where
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
Self: Sized,
Execute an accumulating computation over a stream, collecting all the
values into one final result. Read more
Source§fn flatten(self) -> Flatten<Self>
fn flatten(self) -> Flatten<Self>
Flattens a stream of streams into just one continuous stream. Read more
Source§fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R>
fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R>
Skip elements on this stream while the predicate provided resolves to
true. Read moreSource§fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R>
fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R>
Take elements from this stream while the predicate provided resolves to
true. Read moreSource§fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U>
fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U>
Runs this stream to completion, executing the provided closure for each
element on the stream. Read more
Source§fn from_err<E>(self) -> FromErr<Self, E>
fn from_err<E>(self) -> FromErr<Self, E>
Map this stream’s error to any error implementing
From for
this stream’s Error, returning a new stream. Read moreSource§fn take(self, amt: u64) -> Take<Self>where
Self: Sized,
fn take(self, amt: u64) -> Take<Self>where
Self: Sized,
Creates a new stream of at most
amt items of the underlying stream. Read moreSource§fn skip(self, amt: u64) -> Skip<Self>where
Self: Sized,
fn skip(self, amt: u64) -> Skip<Self>where
Self: Sized,
Creates a new stream which skips
amt items of the underlying stream. Read moreSource§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Fuse a stream such that
poll will never again be called once it has
finished. Read moreSource§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Borrows a stream, rather than consuming it. Read more
Source§fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
Catches unwinding panics while polling the stream. Read more
Source§fn buffered(self, amt: usize) -> Buffered<Self>
fn buffered(self, amt: usize) -> Buffered<Self>
An adaptor for creating a buffered list of pending futures. Read more
Source§fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self>
fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self>
An adaptor for creating a buffered list of pending futures (unordered). Read more
Source§fn merge<S>(self, other: S) -> Merge<Self, S>
fn merge<S>(self, other: S) -> Merge<Self, S>
👎Deprecated: functionality provided by
select nowAn adapter for merging the output of two streams. Read more
Source§fn zip<S>(self, other: S) -> Zip<Self, S>
fn zip<S>(self, other: S) -> Zip<Self, S>
An adapter for zipping two streams together. Read more
Source§fn peekable(self) -> Peekable<Self>where
Self: Sized,
fn peekable(self) -> Peekable<Self>where
Self: Sized,
Creates a new stream which exposes a
peek method. Read moreSource§fn chunks(self, capacity: usize) -> Chunks<Self>where
Self: Sized,
fn chunks(self, capacity: usize) -> Chunks<Self>where
Self: Sized,
An adaptor for chunking up items of the stream inside a vector. Read more
Source§fn select<S>(self, other: S) -> Select<Self, S>
fn select<S>(self, other: S) -> Select<Self, S>
Creates a stream that selects the next element from either this stream
or the provided one, whichever is ready first. Read more
Source§fn forward<S>(self, sink: S) -> Forward<Self, S>
fn forward<S>(self, sink: S) -> Forward<Self, S>
A future that completes after the given stream has been fully processed
into the sink, including flushing. Read more
Source§fn inspect<F>(self, f: F) -> Inspect<Self, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F>
Do something with each item of this stream, afterwards passing it on. Read more
Source§fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
Do something with the error of this stream, afterwards passing it on. Read more
Auto Trait Implementations§
impl<S> Freeze for SelectAll<S>
impl<S> !RefUnwindSafe for SelectAll<S>
impl<S> Send for SelectAll<S>where
S: Send,
impl<S> Sync for SelectAll<S>where
S: Sync,
impl<S> Unpin for SelectAll<S>
impl<S> !UnwindSafe for SelectAll<S>
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
Source§impl<T> StreamExt for Twhere
T: Stream,
impl<T> StreamExt for Twhere
T: Stream,
Source§fn streamfork<Out1, Out2, F, E>(
self,
out1: Out1,
out2: Out2,
pred: F,
) -> Forker<Self, Out1, Out2, F, E>
fn streamfork<Out1, Out2, F, E>( self, out1: Out1, out2: Out2, pred: F, ) -> Forker<Self, Out1, Out2, F, E>
Fork elements in a stream out to two sinks, depending on a predicate Read more
Source§fn collect_no_consume(self) -> CollectNoConsume<Self>where
Self: Sized,
fn collect_no_consume(self) -> CollectNoConsume<Self>where
Self: Sized,
Returns a future that yields a
(Vec<<Self>::Item>, Self), where the
vector is a collections of all elements yielded by the Stream.Source§fn encode<Enc>(self, encoder: Enc) -> LayeredEncoder<Self, Enc>
fn encode<Enc>(self, encoder: Enc) -> LayeredEncoder<Self, Enc>
A shorthand for encode::encode
Source§fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
Similar to std::iter::Iterator::enumerate, returns a Stream that yields
(usize, Self::Item) where the first element of tuple is the iteration
count.Source§fn return_remainder(self) -> (ReturnRemainder<Self>, ConservativeReceiver<Self>)where
Self: Sized,
fn return_remainder(self) -> (ReturnRemainder<Self>, ConservativeReceiver<Self>)where
Self: Sized,
Creates a stream wrapper and a future. The future will resolve into the wrapped stream when
the stream wrapper returns None. It uses ConservativeReceiver to ensure that deadlocks are
easily caught when one tries to poll on the receiver before consuming the stream.
Source§fn is_empty<'a>(
self,
) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a>
fn is_empty<'a>( self, ) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a>
Whether this stream is empty. Read more
Source§fn not_empty<'a>(
self,
) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a>
fn not_empty<'a>( self, ) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a>
Whether this stream is not empty (has at least one element). Read more
Source§fn boxify(self) -> BoxStream<Self::Item, Self::Error>
fn boxify(self) -> BoxStream<Self::Item, Self::Error>
Create a
Sendable boxed version of this Stream.Source§fn boxify_nonsend(self) -> BoxStreamNonSend<Self::Item, Self::Error>where
Self: 'static + Sized,
fn boxify_nonsend(self) -> BoxStreamNonSend<Self::Item, Self::Error>where
Self: 'static + Sized,
Create a non-
Sendable boxed version of this Stream.Source§fn left_stream<B>(self) -> StreamEither<Self, B>where
Self: Sized,
fn left_stream<B>(self) -> StreamEither<Self, B>where
Self: Sized,
Shorthand for returning
StreamEither::ASource§fn right_stream<A>(self) -> StreamEither<A, Self>where
Self: Sized,
fn right_stream<A>(self) -> StreamEither<A, Self>where
Self: Sized,
Shorthand for returning
StreamEither::BSource§fn batch(self, limit: usize) -> BatchStream<Self>where
Self: Sized,
fn batch(self, limit: usize) -> BatchStream<Self>where
Self: Sized,
Similar to Stream::chunks, but returns earlier if futures::Async::NotReady
was returned.
Source§fn buffered_weight_limited<I, E, Fut>(
self,
params: BufferedParams,
) -> WeightLimitedBufferedStream<Self, I, E>
fn buffered_weight_limited<I, E, Fut>( self, params: BufferedParams, ) -> WeightLimitedBufferedStream<Self, I, E>
Like Stream::buffered call, but can also limit number of futures in a buffer by “weight”.
Source§impl<T> StreamLayeredExt for T
impl<T> StreamLayeredExt for T
Source§fn decode<Dec>(self, decoder: Dec) -> LayeredDecode<T, Dec>where
Dec: Decoder,
fn decode<Dec>(self, decoder: Dec) -> LayeredDecode<T, Dec>where
Dec: Decoder,
Returnes a Stream that will yield decoded chunks of Bytes as they come
using provided [Decoder]