[][src]Trait tokio::prelude::FutureExt

pub trait FutureExt: Future {
    fn timeout(self, timeout: Duration) -> Timeout<Self>
    where
        Self: Sized
, { ... } }

An extension trait for Future that provides a variety of convenient combinator functions.

Currently, there only is a timeout function, but this will increase over time.

Users are not expected to implement this trait. All types that implement Future already implement FutureExt.

This trait can be imported directly or via the Tokio prelude: use tokio::prelude::*.

Provided methods

fn timeout(self, timeout: Duration) -> Timeout<Self> where
    Self: Sized

Creates a new future which allows self until timeout.

This combinator creates a new future which wraps the receiving future with a timeout. The returned future is allowed to execute until it completes or timeout has elapsed, whichever happens first.

If the future completes before timeout then the future will resolve with that item. Otherwise the future will resolve to an error.

The future is guaranteed to be polled at least once, even if timeout is set to zero.

Examples

use tokio::prelude::*;
use std::time::Duration;

let future = long_future()
    .timeout(Duration::from_secs(1))
    .map_err(|e| println!("error = {:?}", e));

tokio::run(future);
Loading content...

Implementors

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

Loading content...