[−][src]Struct futures_ext::SelectAll
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
impl<S: Stream> SelectAll<S>
[src]
pub fn len(&self) -> usize
[src]
Returns the number of streams contained in the set.
This represents the total number of in-flight streams.
pub fn is_empty(&self) -> bool
[src]
Returns true
if the set contains no streams
pub fn push(&mut self, stream: S)
[src]
Push a stream into the set.
This function submits the given stream to the set for managing. This
function will not call poll
on the submitted stream. The caller must
ensure that SelectAll::poll
is called in order to receive task
notifications.
Trait Implementations
impl<T: Debug + Stream> Debug for SelectAll<T>
[src]
impl<S: Stream> Default for SelectAll<S>
[src]
pub fn default() -> Self
[src]
Constructs a new, empty SelectAll
The returned SelectAll
does not contain any streams and, in this
state, SelectAll::poll
will return Ok(Async::Ready(None))
.
impl<S: Stream> Stream for SelectAll<S>
[src]
type Item = S::Item
The type of item this stream will yield on success.
type Error = S::Error
The type of error this stream may generate.
pub fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>
[src]
pub fn wait(self) -> Wait<Self>
[src]
pub fn into_future(self) -> StreamFuture<Self>
[src]
pub fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnMut(Self::Item) -> U,
[src]
F: FnMut(Self::Item) -> U,
pub fn map_err<U, F>(self, f: F) -> MapErr<Self, F> where
F: FnMut(Self::Error) -> U,
[src]
F: FnMut(Self::Error) -> U,
pub fn filter<F>(self, f: F) -> Filter<Self, F> where
F: FnMut(&Self::Item) -> bool,
[src]
F: FnMut(&Self::Item) -> bool,
pub fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F> where
F: FnMut(Self::Item) -> Option<B>,
[src]
F: FnMut(Self::Item) -> Option<B>,
pub fn then<F, U>(self, f: F) -> Then<Self, F, U> where
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
[src]
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
pub fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U> where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
[src]
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
pub fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U> where
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
[src]
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
pub fn collect(self) -> Collect<Self>
[src]
pub fn concat2(self) -> Concat2<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
[src]
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
pub fn concat(self) -> Concat<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
[src]
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
pub 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>,
[src]
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
pub fn flatten(self) -> Flatten<Self> where
Self::Item: Stream,
<Self::Item as Stream>::Error: From<Self::Error>,
[src]
Self::Item: Stream,
<Self::Item as Stream>::Error: From<Self::Error>,
pub fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R> where
R: IntoFuture<Item = bool, Error = Self::Error>,
P: FnMut(&Self::Item) -> R,
[src]
R: IntoFuture<Item = bool, Error = Self::Error>,
P: FnMut(&Self::Item) -> R,
pub fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R> where
R: IntoFuture<Item = bool, Error = Self::Error>,
P: FnMut(&Self::Item) -> R,
[src]
R: IntoFuture<Item = bool, Error = Self::Error>,
P: FnMut(&Self::Item) -> R,
pub fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U> where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
[src]
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
pub fn from_err<E>(self) -> FromErr<Self, E> where
E: From<Self::Error>,
[src]
E: From<Self::Error>,
pub fn take(self, amt: u64) -> Take<Self>
[src]
pub fn skip(self, amt: u64) -> Skip<Self>
[src]
pub fn fuse(self) -> Fuse<Self>
[src]
pub fn by_ref(&mut self) -> &mut Self
[src]
pub fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
[src]
Self: UnwindSafe,
pub fn buffered(self, amt: usize) -> Buffered<Self> where
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
[src]
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
pub fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self> where
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
[src]
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
pub fn merge<S>(self, other: S) -> Merge<Self, S> where
S: Stream<Error = Self::Error>,
[src]
S: Stream<Error = Self::Error>,
pub fn zip<S>(self, other: S) -> Zip<Self, S> where
S: Stream<Error = Self::Error>,
[src]
S: Stream<Error = Self::Error>,
pub fn chain<S>(self, other: S) -> Chain<Self, S> where
S: Stream<Item = Self::Item, Error = Self::Error>,
[src]
S: Stream<Item = Self::Item, Error = Self::Error>,
pub fn peekable(self) -> Peekable<Self>
[src]
pub fn chunks(self, capacity: usize) -> Chunks<Self>
[src]
pub fn select<S>(self, other: S) -> Select<Self, S> where
S: Stream<Item = Self::Item, Error = Self::Error>,
[src]
S: Stream<Item = Self::Item, Error = Self::Error>,
pub fn forward<S>(self, sink: S) -> Forward<Self, S> where
S: Sink<SinkItem = Self::Item>,
Self::Error: From<<S as Sink>::SinkError>,
[src]
S: Sink<SinkItem = Self::Item>,
Self::Error: From<<S as Sink>::SinkError>,
pub fn split(self) -> (SplitSink<Self>, SplitStream<Self>) where
Self: Sink,
[src]
Self: Sink,
pub fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnMut(&Self::Item),
[src]
F: FnMut(&Self::Item),
pub fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
F: FnMut(&Self::Error),
[src]
F: FnMut(&Self::Error),
Auto Trait Implementations
impl<S> !RefUnwindSafe for SelectAll<S>
[src]
impl<S> Send for SelectAll<S> where
S: Send,
[src]
S: Send,
impl<S> Sync for SelectAll<S> where
S: Sync,
[src]
S: Sync,
impl<S> Unpin for SelectAll<S>
[src]
impl<S> !UnwindSafe for SelectAll<S>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> StreamExt for T where
T: Stream,
[src]
T: Stream,
pub fn streamfork<Out1, Out2, F, E>(
self,
out1: Out1,
out2: Out2,
pred: F
) -> Forker<Self, Out1, Out2, F, E> where
Self: Sized,
Out1: Sink<SinkItem = Self::Item>,
Out2: Sink<SinkItem = Self::Item, SinkError = Out1::SinkError>,
F: FnMut(&Self::Item) -> Result<bool, E>,
E: From<Self::Error> + From<Out1::SinkError> + From<Out2::SinkError>,
[src]
self,
out1: Out1,
out2: Out2,
pred: F
) -> Forker<Self, Out1, Out2, F, E> where
Self: Sized,
Out1: Sink<SinkItem = Self::Item>,
Out2: Sink<SinkItem = Self::Item, SinkError = Out1::SinkError>,
F: FnMut(&Self::Item) -> Result<bool, E>,
E: From<Self::Error> + From<Out1::SinkError> + From<Out2::SinkError>,
pub fn collect_no_consume(self) -> CollectNoConsume<Self> where
Self: Sized,
[src]
Self: Sized,
pub fn encode<Enc>(self, encoder: Enc) -> LayeredEncoder<Self, Enc> where
Self: Sized,
Enc: Encoder<Item = Self::Item>,
[src]
Self: Sized,
Enc: Encoder<Item = Self::Item>,
pub fn enumerate(self) -> Enumerate<Self> where
Self: Sized,
[src]
Self: Sized,
pub fn return_remainder(
self
) -> (ReturnRemainder<Self>, ConservativeReceiver<Self>) where
Self: Sized,
[src]
self
) -> (ReturnRemainder<Self>, ConservativeReceiver<Self>) where
Self: Sized,
pub fn is_empty<'a>(
self
) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a> where
Self: 'a + Send + Sized,
[src]
self
) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a> where
Self: 'a + Send + Sized,
pub fn not_empty<'a>(
self
) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a> where
Self: 'a + Send + Sized,
[src]
self
) -> Box<dyn Future<Item = bool, Error = Self::Error> + Send + 'a> where
Self: 'a + Send + Sized,
pub fn boxify(self) -> BoxStream<Self::Item, Self::Error> where
Self: 'static + Send + Sized,
[src]
Self: 'static + Send + Sized,
pub fn boxify_nonsend(self) -> BoxStreamNonSend<Self::Item, Self::Error> where
Self: 'static + Sized,
[src]
Self: 'static + Sized,
pub fn left_stream<B>(self) -> StreamEither<Self, B> where
Self: Sized,
[src]
Self: Sized,
pub fn right_stream<A>(self) -> StreamEither<A, Self> where
Self: Sized,
[src]
Self: Sized,
pub fn whole_stream_timeout(self, duration: Duration) -> StreamWithTimeout<Self> where
Self: Sized,
[src]
Self: Sized,
pub fn batch(self, limit: usize) -> BatchStream<Self> where
Self: Sized,
[src]
Self: Sized,
pub fn buffered_weight_limited<I, E, Fut>(
self,
params: BufferedParams
) -> WeightLimitedBufferedStream<Self, I, E> where
Self: Sized + Send + 'static,
Self: Stream<Item = (Fut, u64), Error = E>,
Fut: Future<Item = I, Error = E>,
[src]
self,
params: BufferedParams
) -> WeightLimitedBufferedStream<Self, I, E> where
Self: Sized + Send + 'static,
Self: Stream<Item = (Fut, u64), Error = E>,
Fut: Future<Item = I, Error = E>,
pub fn collect_to<C: Default + Extend<Self::Item>>(self) -> CollectTo<Self, C> where
Self: Sized,
[src]
Self: Sized,
impl<T> StreamExt for T where
T: Stream + ?Sized,
[src]
T: Stream + ?Sized,
pub fn throttle(self, duration: Duration) -> Throttle<Self>
[src]
pub fn enumerate(self) -> Enumerate<Self>
[src]
pub fn timeout(self, timeout: Duration) -> Timeout<Self>
[src]
impl<T> StreamLayeredExt for T where
T: Stream<Item = Bytes>,
[src]
T: Stream<Item = Bytes>,
pub fn decode<Dec>(Self, Dec) -> LayeredDecode<T, Dec> where
Dec: Decoder,
[src]
Dec: Decoder,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,