pub struct Timeout<Fut: Future> { /* private fields */ }
Expand description
A future polling both another future and a Timer
that will complete after a specified
timeout, and returning the future’s output or None
if the timer completes first.
§Example
use async_io::Timer;
use smol_timeout::TimeoutExt;
use std::time::Duration;
let foo = async {
Timer::after(Duration::from_millis(250)).await;
24
};
let foo = foo.timeout(Duration::from_millis(100));
assert_eq!(foo.await, None);
let bar = async {
Timer::after(Duration::from_millis(100)).await;
42
};
let bar = bar.timeout(Duration::from_millis(250));
assert_eq!(bar.await, Some(42));
Trait Implementations§
impl<'__pin, Fut: Future> Unpin for Timeout<Fut>where
PinnedFieldsOf<__Origin<'__pin, Fut>>: Unpin,
Auto Trait Implementations§
impl<Fut> Freeze for Timeout<Fut>where
Fut: Freeze,
impl<Fut> RefUnwindSafe for Timeout<Fut>where
Fut: RefUnwindSafe,
impl<Fut> Send for Timeout<Fut>where
Fut: Send,
impl<Fut> Sync for Timeout<Fut>where
Fut: Sync,
impl<Fut> UnwindSafe for Timeout<Fut>where
Fut: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<F> FutureExt for F
impl<F> FutureExt for F
Source§fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
Catches panics while polling the future. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<F> IntoFuture for Fwhere
F: Future,
impl<F> IntoFuture for Fwhere
F: Future,
Source§type IntoFuture = F
type IntoFuture = F
Which kind of future are we turning this into?
Source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more