pub trait ClassifyRetry: Send + Sync + Debug {
    // Required methods
    fn classify_retry(&self, ctx: &InterceptorContext) -> RetryAction;
    fn name(&self) -> &'static str;

    // Provided method
    fn priority(&self) -> RetryClassifierPriority { ... }
}
Expand description

Classifies what kind of retry is needed for a given InterceptorContext.

Required Methods§

source

fn classify_retry(&self, ctx: &InterceptorContext) -> RetryAction

Run this classifier on the InterceptorContext to determine if the previous request should be retried. Returns a RetryAction.

source

fn name(&self) -> &'static str

The name of this retry classifier.

Used for debugging purposes.

Provided Methods§

source

fn priority(&self) -> RetryClassifierPriority

The priority of this retry classifier.

Classifiers with a higher priority will override the results of classifiers with a lower priority. Classifiers with equal priorities make no guarantees about which will override the other.

Retry classifiers are run in order of increasing priority. Any decision (return value other than NoActionIndicated) from a higher priority classifier will override the decision of a lower priority classifier with one exception: RetryAction::RetryForbidden is treated differently: If ANY classifier returns RetryForbidden, this request will not be retried.

Implementations on Foreign Types§

source§

impl ClassifyRetry for HttpStatusCodeClassifier

source§

impl<E> ClassifyRetry for AwsErrorCodeClassifier<E>
where E: Error + ProvideErrorMetadata + Send + Sync + 'static,

source§

impl<E> ClassifyRetry for ModeledAsRetryableClassifier<E>
where E: Error + ProvideErrorKind + Send + Sync + 'static,

source§

impl<E> ClassifyRetry for TransientErrorClassifier<E>
where E: Error + Send + Sync + 'static,

Implementors§