Skip to main content

RetryError

Enum RetryError 

Source
pub enum RetryError<E> {
    Aborted {
        attempts: u32,
        elapsed: Duration,
        failure: RetryAttemptFailure<E>,
    },
    AttemptsExceeded {
        attempts: u32,
        max_attempts: u32,
        elapsed: Duration,
        last_failure: RetryAttemptFailure<E>,
    },
    MaxElapsedExceeded {
        attempts: u32,
        elapsed: Duration,
        max_elapsed: Duration,
        last_failure: Option<RetryAttemptFailure<E>>,
    },
}
Expand description

Error returned when a retry executor terminates without a successful result.

The generic parameter E is the caller’s application error type. It is preserved in the final RetryAttemptFailure whenever the terminal failure came from the user operation.

Variants§

§

Aborted

The configured crate::RetryDecider returned crate::RetryDecision::Abort for the last application error.

Fields

§attempts: u32

Number of attempts that were executed.

§elapsed: Duration

Total elapsed time observed by the retry executor.

§failure: RetryAttemptFailure<E>

Failure that caused the abort.

§

AttemptsExceeded

The maximum number of attempts has been exhausted.

Fields

§attempts: u32

Number of attempts that were executed.

§max_attempts: u32

Configured attempt limit.

§elapsed: Duration

Total elapsed time observed by the retry executor.

§last_failure: RetryAttemptFailure<E>

Last observed failure.

§

MaxElapsedExceeded

The total elapsed retry budget has been exhausted.

Fields

§attempts: u32

Number of attempts that were executed.

§elapsed: Duration

Total elapsed time observed by the retry executor.

§max_elapsed: Duration

Configured elapsed budget.

§last_failure: Option<RetryAttemptFailure<E>>

Last failure, if any attempt ran before the budget was exhausted.

Implementations§

Source§

impl<E> RetryError<E>

Source

pub fn attempts(&self) -> u32

Returns the number of attempts that were executed.

§Parameters

This method has no parameters.

§Returns

The number of operation attempts observed before termination.

§Errors

This method does not return errors.

Source

pub fn elapsed(&self) -> Duration

Returns the elapsed time recorded at termination.

§Parameters

This method has no parameters.

§Returns

The elapsed duration recorded by the retry executor when it stopped.

§Errors

This method does not return errors.

Source

pub fn last_failure(&self) -> Option<&RetryAttemptFailure<E>>

Returns the last failure, if one exists.

§Parameters

This method has no parameters.

§Returns

Some(&RetryAttemptFailure<E>) when at least one attempt failure was observed; None when the elapsed budget was exhausted before any attempt ran.

§Errors

This method does not return errors.

Source

pub fn last_error(&self) -> Option<&E>

Returns the last application error, if one exists.

§Parameters

This method has no parameters.

§Returns

Some(&E) when the terminal failure wraps an application error; None for timeout failures or elapsed-budget failures with no attempt.

§Errors

This method does not return errors.

Source

pub fn into_last_error(self) -> Option<E>

Consumes the retry error and returns the last application error when the final failure wraps one.

§Parameters

This method has no parameters.

§Returns

Some(E) when the terminal failure owns an application error; None when the terminal failure was a timeout or when no attempt ran.

§Errors

This method does not return errors.

Trait Implementations§

Source§

impl<E: Clone> Clone for RetryError<E>

Source§

fn clone(&self) -> RetryError<E>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<E: Debug> Debug for RetryError<E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E> Display for RetryError<E>
where E: Display,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the retry error for diagnostics.

§Parameters
  • f: Formatter provided by the standard formatting machinery.
§Returns

fmt::Result from the formatter.

§Errors

Returns a formatting error if the underlying formatter fails.

Source§

impl<E> Error for RetryError<E>
where E: Error + 'static,

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the source application error when one is available.

§Parameters

This method has no parameters.

§Returns

Some(&dyn Error) when the terminal failure wraps an application error that implements std::error::Error; otherwise None.

§Errors

This method does not return errors.

1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl<E: PartialEq> PartialEq for RetryError<E>

Source§

fn eq(&self, other: &RetryError<E>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<E: Eq> Eq for RetryError<E>

Source§

impl<E> StructuralPartialEq for RetryError<E>

Auto Trait Implementations§

§

impl<E> Freeze for RetryError<E>
where E: Freeze,

§

impl<E> RefUnwindSafe for RetryError<E>
where E: RefUnwindSafe,

§

impl<E> Send for RetryError<E>
where E: Send,

§

impl<E> Sync for RetryError<E>
where E: Sync,

§

impl<E> Unpin for RetryError<E>
where E: Unpin,

§

impl<E> UnsafeUnpin for RetryError<E>
where E: UnsafeUnpin,

§

impl<E> UnwindSafe for RetryError<E>
where E: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.