#[non_exhaustive]pub enum RetryKind {
Error(ErrorKind),
Explicit(Duration),
UnretryableFailure,
Unnecessary,
}Expand description
RetryKind describes how a request MAY be retried for a given response
A RetryKind describes how a response MAY be retried; it does not mandate retry behavior.
The actual retry behavior is at the sole discretion of the RetryStrategy in place.
A RetryStrategy may ignore the suggestion for a number of reasons including but not limited to:
- Number of retry attempts exceeded
- The required retry delay exceeds the maximum backoff configured by the client
- No retry tokens are available due to service health
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Error(ErrorKind)
Retry the associated request due to a known ErrorKind.
Explicit(Duration)
An Explicit retry (e.g. from x-amz-retry-after).
Note: The specified Duration is considered a suggestion and may be replaced or ignored.
UnretryableFailure
The response was a failure that should not be retried.
Unnecessary
The response was successful, so no retry is necessary.
Trait Implementations§
impl Eq for RetryKind
impl StructuralPartialEq for RetryKind
Auto Trait Implementations§
impl Freeze for RetryKind
impl RefUnwindSafe for RetryKind
impl Send for RetryKind
impl Sync for RetryKind
impl Unpin for RetryKind
impl UnwindSafe for RetryKind
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<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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more