diff options
Diffstat (limited to 'tokio/src/future.rs')
-rw-r--r-- | tokio/src/future.rs | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/tokio/src/future.rs b/tokio/src/future.rs deleted file mode 100644 index f6b7e4a7..00000000 --- a/tokio/src/future.rs +++ /dev/null @@ -1,69 +0,0 @@ -//! Asynchronous values. - -#[cfg(feature = "time")] -use crate::time::Timeout; - -#[cfg(feature = "time")] -use std::time::Duration; - -#[doc(inline)] -pub use futures_util::future::{err, ok, pending, poll_fn, ready}; -#[doc(inline)] -pub use std::future::Future; - -/// 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::*`. -/// -/// [`timeout`]: #method.timeout -pub trait FutureExt: Future { - /// 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; - /// - /// async fn long_future() { - /// // do work here - /// } - /// - /// # async fn dox() { - /// let res = long_future() - /// .timeout(Duration::from_secs(1)) - /// .await; - /// - /// if res.is_err() { - /// println!("operation timed out"); - /// } - /// # } - /// ``` - #[cfg(feature = "time")] - fn timeout(self, timeout: Duration) -> Timeout<Self> - where - Self: Sized, - { - Timeout::new(self, timeout) - } -} - -impl<T: ?Sized> FutureExt for T where T: Future {} |