[−][src]Trait smol::future::FutureExt
Extension trait for Future
.
Provided methods
fn or<F>(self, other: F) -> Or<Self, F>ⓘ where
F: Future<Output = Self::Output>,
F: Future<Output = Self::Output>,
Returns the result of self
or other
future, preferring self
if both are ready.
If you need to treat the two futures fairly without a preference for either, use the
race()
function instead.
Examples
use futures_lite::*; use futures_lite::future::{pending, ready}; assert_eq!(ready(1).or(pending()).await, 1); assert_eq!(pending().or(ready(2)).await, 2); // The first future wins. assert_eq!(ready(1).or(ready(2)).await, 1);
fn boxed(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'static + Send>>ⓘ where
Self: Send + 'static,
Self: Send + 'static,
Boxes the future and changes its type to dyn Future<Output = T> + Send
.
Examples
use futures_lite::*; let a = future::ready('a'); let b = future::pending(); // Futures of different types can be stored in // the same collection when they are boxed: let futures = vec![a.boxed(), b.boxed()];
fn boxed_local(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'static>>ⓘ where
Self: 'static,
Self: 'static,
Boxes the future and changes its type to dyn Future<Output = T>
.
Examples
use futures_lite::*; let a = future::ready('a'); let b = future::pending(); // Futures of different types can be stored in // the same collection when they are boxed: let futures = vec![a.boxed_local(), b.boxed_local()];