#[non_exhaustive]
pub enum TimeoutServiceFuture<F> {
Timeout {
future: Timeout<F, Sleep>,
kind: &'static str,
duration: Duration,
},
NoTimeout {
future: F,
},
}
Expand description
A future generated by a TimeoutService
that may or may not have a timeout depending on
whether or not one was set. Because TimeoutService
can be used at multiple levels of the
service stack, a kind
can be set so that when a timeout occurs, you can know which kind of
timeout it was.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Timeout
A wrapper around an inner future that will output an SdkError
if it runs longer than
the given duration
NoTimeout
Fields
future: F
A thin wrapper around an inner future that will never time out
Implementations§
source§impl<F> TimeoutServiceFuture<F>
impl<F> TimeoutServiceFuture<F>
sourcepub fn new(future: F, params: &TimeoutServiceParams) -> Self
pub fn new(future: F, params: &TimeoutServiceParams) -> Self
Given a future
, an implementor of AsyncSleep
, a kind
for this timeout, and a duration
,
wrap the future
inside a Timeout
future and create a new TimeoutServiceFuture
that
will output an SdkError
if future
doesn’t complete before duration
has elapsed.
sourcepub fn no_timeout(future: F) -> Self
pub fn no_timeout(future: F) -> Self
Create a TimeoutServiceFuture
that will never time out.
Trait Implementations§
source§impl<InnerFuture, T, E> Future for TimeoutServiceFuture<InnerFuture>where
InnerFuture: Future<Output = Result<T, SdkError<E>>>,
impl<InnerFuture, T, E> Future for TimeoutServiceFuture<InnerFuture>where InnerFuture: Future<Output = Result<T, SdkError<E>>>,
impl<'__pin, F> Unpin for TimeoutServiceFuture<F>where __Origin<'__pin, F>: Unpin,
Auto Trait Implementations§
impl<F> !RefUnwindSafe for TimeoutServiceFuture<F>
impl<F> Send for TimeoutServiceFuture<F>where F: Send,
impl<F> !Sync for TimeoutServiceFuture<F>
impl<F> !UnwindSafe for TimeoutServiceFuture<F>
Blanket Implementations§
source§impl<T> FutureExt for Twhere
T: Future + ?Sized,
impl<T> FutureExt for Twhere T: Future + ?Sized,
source§fn map<U, F>(self, f: F) -> Map<Self, F>where
F: FnOnce(Self::Output) -> U,
Self: Sized,
fn map<U, F>(self, f: F) -> Map<Self, F>where F: FnOnce(Self::Output) -> U, Self: Sized,
source§fn map_into<U>(self) -> MapInto<Self, U>where
Self::Output: Into<U>,
Self: Sized,
fn map_into<U>(self) -> MapInto<Self, U>where Self::Output: Into<U>, Self: Sized,
source§fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
Self: Sized,
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>where F: FnOnce(Self::Output) -> Fut, Fut: Future, Self: Sized,
f
. Read moresource§fn left_future<B>(self) -> Either<Self, B>where
B: Future<Output = Self::Output>,
Self: Sized,
fn left_future<B>(self) -> Either<Self, B>where B: Future<Output = Self::Output>, Self: Sized,
source§fn right_future<A>(self) -> Either<A, Self>where
A: Future<Output = Self::Output>,
Self: Sized,
fn right_future<A>(self) -> Either<A, Self>where A: Future<Output = Self::Output>, Self: Sized,
source§fn into_stream(self) -> IntoStream<Self>where
Self: Sized,
fn into_stream(self) -> IntoStream<Self>where Self: Sized,
source§fn flatten(self) -> Flatten<Self>where
Self::Output: Future,
Self: Sized,
fn flatten(self) -> Flatten<Self>where Self::Output: Future, Self: Sized,
source§fn flatten_stream(self) -> FlattenStream<Self>where
Self::Output: Stream,
Self: Sized,
fn flatten_stream(self) -> FlattenStream<Self>where Self::Output: Stream, Self: Sized,
source§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where Self: Sized,
poll
will never again be called once it has
completed. This method can be used to turn any Future
into a
FusedFuture
. Read moresource§fn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnOnce(&Self::Output),
Self: Sized,
fn inspect<F>(self, f: F) -> Inspect<Self, F>where F: FnOnce(&Self::Output), Self: Sized,
source§fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self>where Self: Sized + UnwindSafe,
source§fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>>where
Self: Sized + Send + 'a,
fn boxed<'a>( self ) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>>where Self: Sized + Send + 'a,
source§fn boxed_local<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>>where
Self: Sized + 'a,
fn boxed_local<'a>( self ) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>>where Self: Sized + 'a,
source§fn unit_error(self) -> UnitError<Self>where
Self: Sized,
fn unit_error(self) -> UnitError<Self>where Self: Sized,
Future<Output = T>
into a
TryFuture<Ok = T, Error = ()
>.source§fn never_error(self) -> NeverError<Self>where
Self: Sized,
fn never_error(self) -> NeverError<Self>where Self: Sized,
Future<Output = T>
into a
TryFuture<Ok = T, Error = Never
>.