[][src]Trait futures_lite::future::FutureExt

pub trait FutureExt: Future {
    fn or<F>(self, other: F) -> Or<Self, F>

Important traits for Or<A, B>

impl<T, A, B> Future for Or<A, B> where
    A: Future<Output = T>,
    B: Future<Output = T>, 
type Output = T;

    where
        Self: Sized,
        F: Future<Output = Self::Output>
, { ... }
fn boxed(self) -> Boxed<Self::Output>
    where
        Self: Sized + Send + 'static
, { ... }
fn boxed_local(self) -> BoxedLocal<Self::Output>
    where
        Self: Sized + 'static
, { ... } }

Extension trait for Future.

Provided methods

fn or<F>(self, other: F) -> Or<Self, F>

Important traits for Or<A, B>

impl<T, A, B> Future for Or<A, B> where
    A: Future<Output = T>,
    B: Future<Output = T>, 
type Output = T;
where
    Self: Sized,
    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) -> Boxed<Self::Output> where
    Self: Sized + 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) -> BoxedLocal<Self::Output> where
    Self: Sized + '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()];
Loading content...

Implementors

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

Loading content...