[−][src]Struct unicycle::Unordered
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]
F: Future,
type Item = F::Output
Values yielded by the stream.
fn poll_next(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Option<Self::Item>>
[src]
fn size_hint(&self) -> (usize, Option<usize>)
[src]
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]
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,
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, 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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>> + ?Sized,
[src]
S: Stream<Item = Result<T, E>> + ?Sized,