#[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> 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