[][src]Struct unicycle::Unordered

pub struct Unordered<F> { /* fields omitted */ }

A container for an unordered collection of Futures.

Examples

use tokio::{stream::StreamExt as _, time};
use std::time::Duration;

#[tokio::main]
async fn main() {
    let mut futures = unicycle::Unordered::new();

    futures.push(time::delay_for(Duration::from_secs(2)));
    futures.push(time::delay_for(Duration::from_secs(3)));
    futures.push(time::delay_for(Duration::from_secs(1)));

    while let Some(_) = futures.next().await {
        println!("tick");
    }

    println!("done!");
}

Methods

impl<F> Unordered<F>[src]

pub fn new() -> Self[src]

Construct a new, empty Unordered.

Examples

use unicycle::Unordered;

let mut futures = Unordered::new();
assert!(futures.is_empty());

futures.push(async { 42 });

pub fn is_empty(&self) -> bool[src]

Test if the collection of futures is empty.

Examples

use unicycle::Unordered;

let mut futures = Unordered::<tokio::time::Delay>::new();
assert!(futures.is_empty());

pub fn push(&mut self, future: F)[src]

Add the given future to the Unordered stream.

Newly added futures are guaranteed to be polled, but there is no guarantee in which order this will happen.

Pushed tasks are pinned by the Unordered collection automatically.

Examples

use unicycle::Unordered;

let mut futures = Unordered::new();
assert!(futures.is_empty());
futures.push(async { 42 });
assert!(!futures.is_empty());

Trait Implementations

impl<F> Default for Unordered<F>[src]

impl<F> Drop for Unordered<F>[src]

impl<F> Send for Unordered<F>[src]

impl<F> Stream for Unordered<F> where
    F: Future
[src]

type Item = F::Output

Values yielded by the stream.

impl<F> Sync for Unordered<F>[src]

impl<F> Unpin for Unordered<F>[src]

Auto Trait Implementations

impl<F> !RefUnwindSafe for Unordered<F>

impl<F> !UnwindSafe for Unordered<F>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future