[−][src]Struct futures_util::stream::FuturesUnordered  
A set of Futures which may complete in any order.
This structure is optimized to manage a large number of futures.
Futures managed by FuturesUnordered will only be polled when they
generate notifications. This reduces the required amount of work needed to
poll large numbers of futures.
FuturesUnordered can be filled by collecting an iterator of Futures
into a FuturesUnordered, or by pushing Futures onto an existing
FuturesUnordered. When new Futures are added, poll_next must be
called in order to begin receiving wakeups for new Futures.
Note that you can create a ready-made FuturesUnordered via the
futures_unordered function in the stream module, or you can start with an
empty set with the FuturesUnordered::new constructor.
Methods
impl<T> FuturesUnordered<T> where
    T: Future, [src] 
impl<T> FuturesUnordered<T> where
    T: Future, pub fn new() -> FuturesUnordered<T>[src] 
pub fn new() -> FuturesUnordered<T>Constructs a new, empty FuturesUnordered
The returned FuturesUnordered does not contain any futures and, in this
state, FuturesUnordered::poll_next will return Ok(Async::Ready(None)).
impl<T> FuturesUnordered<T>[src] 
impl<T> FuturesUnordered<T>pub fn len(&self) -> usize[src] 
pub fn len(&self) -> usizeReturns the number of futures contained in the set.
This represents the total number of in-flight futures.
pub fn is_empty(&self) -> bool[src] 
pub fn is_empty(&self) -> boolReturns true if the set contains no futures
pub fn push(&mut self, future: T)[src] 
pub fn push(&mut self, future: T)Push a future into the set.
This function submits the given future to the set for managing. This
function will not call poll on the submitted future. The caller must
ensure that FuturesUnordered::poll_next is called in order to receive task
notifications.
pub fn iter_mut(&mut self) -> IterMut<T>[src] 
pub fn iter_mut(&mut self) -> IterMut<T>Returns an iterator that allows modifying each future in the set.
Trait Implementations
impl<T: Debug> Debug for FuturesUnordered<T>[src] 
impl<T: Debug> Debug for FuturesUnordered<T>fn fmt(&self, fmt: &mut Formatter) -> Result[src] 
fn fmt(&self, fmt: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl<T> Drop for FuturesUnordered<T>[src] 
impl<T> Drop for FuturesUnordered<T>impl<F: Future> FromIterator<F> for FuturesUnordered<F>[src] 
impl<F: Future> FromIterator<F> for FuturesUnordered<F>fn from_iter<T>(iter: T) -> Self where
    T: IntoIterator<Item = F>, [src] 
fn from_iter<T>(iter: T) -> Self where
    T: IntoIterator<Item = F>, Creates a value from an iterator. Read more
impl<T: Sync> Sync for FuturesUnordered<T>[src] 
impl<T: Sync> Sync for FuturesUnordered<T>impl<T: Send> Send for FuturesUnordered<T>[src] 
impl<T: Send> Send for FuturesUnordered<T>impl<T> Stream for FuturesUnordered<T> where
    T: Future, [src] 
impl<T> Stream for FuturesUnordered<T> where
    T: Future, type Item = T::Item
Values yielded by the stream.
type Error = T::Error
Errors yielded by the stream.
fn poll_next(&mut self, cx: &mut Context) -> Poll<Option<T::Item>, T::Error>[src] 
fn poll_next(&mut self, cx: &mut Context) -> Poll<Option<T::Item>, T::Error>Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
Blanket Implementations
impl<T> StreamExt for T where
    T: Stream + ?Sized, [src] 
impl<T> StreamExt for T where
    T: Stream + ?Sized, fn next(self) -> StreamFuture<Self> where
    Self: Sized, [src] 
fn next(self) -> StreamFuture<Self> where
    Self: Sized, Converts this stream into a Future. Read more
fn map<U, F>(self, f: F) -> Map<Self, F> where
    F: FnMut(Self::Item) -> U,
    Self: Sized, [src] 
fn map<U, F>(self, f: F) -> Map<Self, F> where
    F: FnMut(Self::Item) -> U,
    Self: Sized, Converts a stream of type T to a stream of type U. Read more
fn map_err<U, F>(self, f: F) -> MapErr<Self, F> where
    F: FnMut(Self::Error) -> U,
    Self: Sized, [src] 
fn map_err<U, F>(self, f: F) -> MapErr<Self, F> where
    F: FnMut(Self::Error) -> U,
    Self: Sized, Converts a stream of error type T to a stream of error type U. Read more
fn filter<R, P>(self, pred: P) -> Filter<Self, R, P> where
    P: FnMut(&Self::Item) -> R,
    R: IntoFuture<Item = bool, Error = Self::Error>,
    Self: Sized, [src] 
fn filter<R, P>(self, pred: P) -> Filter<Self, R, P> where
    P: FnMut(&Self::Item) -> R,
    R: IntoFuture<Item = bool, Error = Self::Error>,
    Self: Sized, Filters the values produced by this stream according to the provided predicate. Read more
fn filter_map<R, B, F>(self, f: F) -> FilterMap<Self, R, F> where
    F: FnMut(Self::Item) -> R,
    R: IntoFuture<Item = Option<B>, Error = Self::Error>,
    Self: Sized, [src] 
fn filter_map<R, B, F>(self, f: F) -> FilterMap<Self, R, F> where
    F: FnMut(Self::Item) -> R,
    R: IntoFuture<Item = Option<B>, Error = Self::Error>,
    Self: Sized, Filters the values produced by this stream while simultaneously mapping them to a different type. Read more
fn then<U, F>(self, f: F) -> Then<Self, U, F> where
    F: FnMut(Result<Self::Item, Self::Error>) -> U,
    U: IntoFuture,
    Self: Sized, [src] 
fn then<U, F>(self, f: F) -> Then<Self, U, F> where
    F: FnMut(Result<Self::Item, Self::Error>) -> U,
    U: IntoFuture,
    Self: Sized, Chain on a computation for when a value is ready, passing the resulting item to the provided closure f. Read more
fn and_then<U, F>(self, f: F) -> AndThen<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoFuture<Error = Self::Error>,
    Self: Sized, [src] 
fn and_then<U, F>(self, f: F) -> AndThen<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoFuture<Error = Self::Error>,
    Self: Sized, Chain on a computation for when a value is ready, passing the successful results to the provided closure f. Read more
fn or_else<U, F>(self, f: F) -> OrElse<Self, U, F> where
    F: FnMut(Self::Error) -> U,
    U: IntoFuture<Item = Self::Item>,
    Self: Sized, [src] 
fn or_else<U, F>(self, f: F) -> OrElse<Self, U, F> where
    F: FnMut(Self::Error) -> U,
    U: IntoFuture<Item = Self::Item>,
    Self: Sized, Chain on a computation for when an error happens, passing the erroneous result to the provided closure f. Read more
fn collect<C: Default + Extend<Self::Item>>(self) -> Collect<Self, C> where
    Self: Sized, [src] 
fn collect<C: Default + Extend<Self::Item>>(self) -> Collect<Self, C> 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
fn concat(self) -> Concat<Self> where
    Self: Sized,
    Self::Item: Extend<<Self::Item as IntoIterator>::Item> + IntoIterator + Default, [src] 
fn concat(self) -> Concat<Self> where
    Self: Sized,
    Self::Item: Extend<<Self::Item as IntoIterator>::Item> + IntoIterator + Default, Concatenate all results of a stream into a single extendable destination, returning a future representing the end result. Read more
fn fold<T, Fut, F>(self, init: T, f: F) -> Fold<Self, Fut, T, F> where
    F: FnMut(T, Self::Item) -> Fut,
    Fut: IntoFuture<Item = T, Error = Self::Error>,
    Self: Sized, [src] 
fn fold<T, Fut, F>(self, init: T, f: F) -> Fold<Self, Fut, T, F> where
    F: FnMut(T, Self::Item) -> Fut,
    Fut: IntoFuture<Item = T, Error = Self::Error>,
    Self: Sized, Execute an accumulating computation over a stream, collecting all the values into one final result. Read more
fn flatten(self) -> Flatten<Self> where
    Self::Item: Stream<Error = Self::Error>,
    Self: Sized, [src] 
fn flatten(self) -> Flatten<Self> where
    Self::Item: Stream<Error = Self::Error>,
    Self: Sized, Flattens a stream of streams into just one continuous stream. Read more
fn skip_while<R, P>(self, pred: P) -> SkipWhile<Self, R, P> where
    P: FnMut(&Self::Item) -> R,
    R: IntoFuture<Item = bool, Error = Self::Error>,
    Self: Sized, [src] 
fn skip_while<R, P>(self, pred: P) -> SkipWhile<Self, R, P> where
    P: FnMut(&Self::Item) -> R,
    R: IntoFuture<Item = bool, Error = Self::Error>,
    Self: Sized, Skip elements on this stream while the predicate provided resolves to true. Read more
fn take_while<R, P>(self, pred: P) -> TakeWhile<Self, R, P> where
    P: FnMut(&Self::Item) -> R,
    R: IntoFuture<Item = bool, Error = Self::Error>,
    Self: Sized, [src] 
fn take_while<R, P>(self, pred: P) -> TakeWhile<Self, R, P> where
    P: FnMut(&Self::Item) -> R,
    R: IntoFuture<Item = bool, Error = Self::Error>,
    Self: Sized, Take elements from this stream while the predicate provided resolves to true. Read more
fn for_each<U, F>(self, f: F) -> ForEach<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoFuture<Item = (), Error = Self::Error>,
    Self: Sized, [src] 
fn for_each<U, F>(self, f: F) -> ForEach<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoFuture<Item = (), Error = Self::Error>,
    Self: Sized, Runs this stream to completion, executing the provided closure for each element on the stream. Read more
fn for_each_concurrent<U, F>(self, f: F) -> ForEachConcurrent<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoFuture<Item = (), Error = Self::Error>,
    Self: Sized, [src] 
fn for_each_concurrent<U, F>(self, f: F) -> ForEachConcurrent<Self, U, F> where
    F: FnMut(Self::Item) -> U,
    U: IntoFuture<Item = (), Error = Self::Error>,
    Self: Sized, Runs this stream to completion, executing the provided closure for each element on the stream. This is similar to for_each but may begin processing an element while previous elements are still being processed. Read more
fn err_into<E>(self) -> ErrInto<Self, E> where
    Self: Sized,
    Self::Error: Into<E>, [src] 
fn err_into<E>(self) -> ErrInto<Self, E> where
    Self: Sized,
    Self::Error: Into<E>, Map this stream's error to a different type using the Into trait. Read more
fn take(self, amt: u64) -> Take<Self> where
    Self: Sized, [src] 
fn take(self, amt: u64) -> Take<Self> where
    Self: Sized, Creates a new stream of at most amt items of the underlying stream. Read more
fn skip(self, amt: u64) -> Skip<Self> where
    Self: Sized, [src] 
fn skip(self, amt: u64) -> Skip<Self> where
    Self: Sized, Creates a new stream which skips amt items of the underlying stream. Read more
fn fuse(self) -> Fuse<Self> where
    Self: Sized, [src] 
fn fuse(self) -> Fuse<Self> where
    Self: Sized, Fuse a stream such that poll will never again be called once it has finished. Read more
fn by_ref(&mut self) -> &mut Self where
    Self: Sized, [src] 
fn by_ref(&mut self) -> &mut Self where
    Self: Sized, Borrows a stream, rather than consuming it. Read more
fn catch_unwind(self) -> CatchUnwind<Self> where
    Self: Sized + UnwindSafe, [src] 
fn catch_unwind(self) -> CatchUnwind<Self> where
    Self: Sized + UnwindSafe, Catches unwinding panics while polling the stream. Read more
fn buffered(self, amt: usize) -> Buffered<Self> where
    Self::Item: IntoFuture<Error = Self::Error>,
    Self: Sized, [src] 
fn buffered(self, amt: usize) -> Buffered<Self> where
    Self::Item: IntoFuture<Error = Self::Error>,
    Self: Sized, An adaptor for creating a buffered list of pending futures. Read more
fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self> where
    Self::Item: IntoFuture<Error = Self::Error>,
    Self: Sized, [src] 
fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self> where
    Self::Item: IntoFuture<Error = Self::Error>,
    Self: Sized, An adaptor for creating a buffered list of pending futures (unordered). Read more
fn zip<S>(self, other: S) -> Zip<Self, S> where
    S: Stream<Error = Self::Error>,
    Self: Sized, [src] 
fn zip<S>(self, other: S) -> Zip<Self, S> where
    S: Stream<Error = Self::Error>,
    Self: Sized, An adapter for zipping two streams together. Read more
fn chain<S>(self, other: S) -> Chain<Self, S> where
    S: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, [src] 
fn chain<S>(self, other: S) -> Chain<Self, S> where
    S: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, Adapter for chaining two stream. Read more
fn peekable(self) -> Peekable<Self> where
    Self: Sized, [src] 
fn peekable(self) -> Peekable<Self> where
    Self: Sized, Creates a new stream which exposes a peek method. Read more
fn chunks(self, capacity: usize) -> Chunks<Self> where
    Self: Sized, [src] 
fn chunks(self, capacity: usize) -> Chunks<Self> where
    Self: Sized, An adaptor for chunking up items of the stream inside a vector. Read more
fn select<S>(self, other: S) -> Select<Self, S> where
    S: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, [src] 
fn select<S>(self, other: S) -> Select<Self, S> where
    S: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, Creates a stream that selects the next element from either this stream or the provided one, whichever is ready first. Read more
fn forward<S>(self, sink: S) -> Forward<Self, S> where
    S: Sink<SinkItem = Self::Item>,
    Self::Error: From<S::SinkError>,
    Self: Sized, [src] 
fn forward<S>(self, sink: S) -> Forward<Self, S> where
    S: Sink<SinkItem = Self::Item>,
    Self::Error: From<S::SinkError>,
    Self: Sized, A future that completes after the given stream has been fully processed into the sink, including flushing. Read more
fn split(self) -> (SplitSink<Self>, SplitStream<Self>) where
    Self: Sink + Sized, [src] 
fn split(self) -> (SplitSink<Self>, SplitStream<Self>) where
    Self: Sink + Sized, Splits this Stream + Sink object into separate Stream and Sink objects. Read more
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnMut(&Self::Item),
    Self: Sized, [src] 
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnMut(&Self::Item),
    Self: Sized, Do something with each item of this stream, afterwards passing it on. Read more
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
    F: FnMut(&Self::Error),
    Self: Sized, [src] 
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
    F: FnMut(&Self::Error),
    Self: Sized, Do something with the error of this stream, afterwards passing it on. Read more
fn recover<E, F>(self, f: F) -> Recover<Self, E, F> where
    F: FnMut(Self::Error) -> Option<Self::Item>,
    Self: Sized, [src] 
fn recover<E, F>(self, f: F) -> Recover<Self, E, F> where
    F: FnMut(Self::Error) -> Option<Self::Item>,
    Self: Sized, Handle errors generated by this stream by converting them into Option<Self::Item>, such that a None value terminates the stream. Read more
ⓘImportant traits for Either<L, R>fn left<B>(self) -> Either<Self, B> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, [src] 
fn left<B>(self) -> Either<Self, B> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, : use left_stream instead
Wrap this stream in an Either stream, making it the left-hand variant of that Either. Read more
ⓘImportant traits for Either<L, R>fn right<B>(self) -> Either<B, Self> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, [src] 
fn right<B>(self) -> Either<B, Self> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, : use right_stream instead
Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more
ⓘImportant traits for Either<L, R>fn left_stream<B>(self) -> Either<Self, B> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, [src] 
fn left_stream<B>(self) -> Either<Self, B> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, Wrap this stream in an Either stream, making it the left-hand variant of that Either. Read more
ⓘImportant traits for Either<L, R>fn right_stream<B>(self) -> Either<B, Self> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, [src] 
fn right_stream<B>(self) -> Either<B, Self> where
    B: Stream<Item = Self::Item, Error = Self::Error>,
    Self: Sized, Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more
impl<T, U> TryFrom for T where
    T: From<U>, [src] 
impl<T, U> TryFrom for T where
    T: From<U>, type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src] 
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>try_from)Performs the conversion.
impl<T> From for T[src] 
impl<T> From for Timpl<T, U> TryInto for T where
    U: TryFrom<T>, [src] 
impl<T, U> TryInto for T where
    U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src] 
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>try_from)Performs the conversion.
impl<T, U> Into for T where
    U: From<T>, [src] 
impl<T, U> Into for T where
    U: From<T>, impl<T> Borrow for T where
    T: ?Sized, [src] 
impl<T> Borrow for T where
    T: ?Sized, impl<T> BorrowMut for T where
    T: ?Sized, [src] 
impl<T> BorrowMut for T where
    T: ?Sized, fn borrow_mut(&mut self) -> &mut T[src] 
fn borrow_mut(&mut self) -> &mut TMutably borrows from an owned value. Read more
impl<T> Any for T where
    T: 'static + ?Sized, [src] 
impl<T> Any for T where
    T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src] 
fn get_type_id(&self) -> TypeId🔬 This is a nightly-only experimental API.  (get_type_id)
this method will likely be replaced by an associated static
Gets the TypeId of self. Read more