pub trait FutureExt: Future {
fn timeout(self, timeout: Duration) -> Timeout<Self>
where
Self: Sized,
{ ... }
}
Expand description
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
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);