use core::future::Future;
use super::{Delay, IntoFuture, Timeout};
pub trait FutureExt: Future {
fn timeout<D>(self, deadline: D) -> Timeout<Self, D::IntoFuture>
where
Self: Sized,
D: IntoFuture,
{
Timeout::new(self, deadline.into_future())
}
fn delay<D>(self, deadline: D) -> Delay<Self, D::IntoFuture>
where
Self: Sized,
D: IntoFuture,
{
Delay::new(self, deadline.into_future())
}
}
impl<T> FutureExt for T where T: Future {}