[−][src]Struct futures::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 wake-up notifications. This reduces the required amount of work
needed to poll large numbers of futures.
FuturesUnordered
can be filled by collect
ing an
iterator of futures into a FuturesUnordered
, or by
push
ing futures onto an existing
FuturesUnordered
. When new futures are added,
poll_next
must be called in order to begin receiving
wake-ups for new futures.
Note that you can create a ready-made FuturesUnordered
via the
collect
method, or you can start with an empty set
with the FuturesUnordered::new
constructor.
This type is only available when the std
or alloc
feature of this
library is activated, and it is activated by default.
Implementations
impl<Fut> FuturesUnordered<Fut>
[src][−]
pub fn new() -> FuturesUnordered<Fut>
[src][−]
Constructs a new, empty FuturesUnordered
.
The returned FuturesUnordered
does not contain any futures.
In this state, FuturesUnordered::poll_next
will
return Poll::Ready(None)
.
pub fn len(&self) -> usize
[src][−]
Returns the number of futures contained in the set.
This represents the total number of in-flight futures.
pub fn is_empty(&self) -> bool
[src][−]
Returns true
if the set contains no futures.
pub fn push(&self, future: Fut)
[src][−]
Push a future into the set.
This method adds the given future to the set. This method will not
call poll
on the submitted future. The caller must
ensure that FuturesUnordered::poll_next
is called
in order to receive wake-up notifications for the given future.
pub fn iter(&self) -> Iter<'_, Fut>ⓘ where
Fut: Unpin,
[src][−]
Fut: Unpin,
Returns an iterator that allows inspecting each future in the set.
pub fn iter_mut(&mut self) -> IterMut<'_, Fut>ⓘ where
Fut: Unpin,
[src][−]
Fut: Unpin,
Returns an iterator that allows modifying each future in the set.
pub fn iter_pin_mut(
self: Pin<&mut FuturesUnordered<Fut>>
) -> IterPinMut<'_, Fut>ⓘNotable traits for IterPinMut<'a, Fut>
impl<'a, Fut> Iterator for IterPinMut<'a, Fut> type Item = Pin<&'a mut Fut>;
[src][−]
self: Pin<&mut FuturesUnordered<Fut>>
) -> IterPinMut<'_, Fut>ⓘ
Notable traits for IterPinMut<'a, Fut>
impl<'a, Fut> Iterator for IterPinMut<'a, Fut> type Item = Pin<&'a mut Fut>;
Returns an iterator that allows modifying each future in the set.
Trait Implementations
impl<Fut> Debug for FuturesUnordered<Fut>
[src][+]
impl<Fut> Default for FuturesUnordered<Fut>
[src][+]
impl<Fut> Drop for FuturesUnordered<Fut>
[src][+]
impl<Fut> Extend<Fut> for FuturesUnordered<Fut>
[src][+]
impl<Fut> FromIterator<Fut> for FuturesUnordered<Fut>
[src][+]
impl<Fut> FusedStream for FuturesUnordered<Fut> where
Fut: Future,
[src][+]
Fut: Future,
impl<'_> LocalSpawn for FuturesUnordered<LocalFutureObj<'_, ()>>
[src][+]
impl<Fut> Send for FuturesUnordered<Fut> where
Fut: Send,
[src]
Fut: Send,
impl<'_> Spawn for FuturesUnordered<FutureObj<'_, ()>>
[src][+]
impl<Fut> Stream for FuturesUnordered<Fut> where
Fut: Future,
[src][+]
Fut: Future,
impl<Fut> Sync for FuturesUnordered<Fut> where
Fut: Sync,
[src]
Fut: Sync,
impl<Fut> Unpin for FuturesUnordered<Fut>
[src]
Auto Trait Implementations
impl<Fut> !RefUnwindSafe for FuturesUnordered<Fut>
impl<Fut> !UnwindSafe for FuturesUnordered<Fut>
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,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<Sp> LocalSpawnExt for Sp where
Sp: LocalSpawn + ?Sized,
[src][+]
Sp: LocalSpawn + ?Sized,
impl<Sp> SpawnExt for Sp where
Sp: Spawn + ?Sized,
[src][+]
Sp: Spawn + ?Sized,
impl<T> StreamExt for T where
T: Stream + ?Sized,
[src][+]
T: Stream + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized,
[src][+]
S: Stream<Item = Result<T, E>> + ?Sized,
impl<S> TryStreamExt for S where
S: TryStream + ?Sized,
[src][+]
S: TryStream + ?Sized,