pub struct LimitedAttemptCount<P = Aip194Strict>where
P: RetryPolicy,{ /* private fields */ }Expand description
A retry policy decorator that limits the number of attempts.
This policy decorates an inner policy and limits the total number of
attempts. Note that on_error() is not called before the initial
(non-retry) attempt. Therefore, setting the maximum number of attempts to 0
or 1 results in no retry attempts.
The policy passes through the results from the inner policy as long as
attempt_count < maximum_attempts. Once the maximum number of attempts is
reached, the policy returns Exhausted if the inner
policy returns Continue, and
§Parameters
P- the inner retry policy.
Implementations§
Source§impl<P> LimitedAttemptCount<P>where
P: RetryPolicy,
impl<P> LimitedAttemptCount<P>where
P: RetryPolicy,
Sourcepub fn custom(inner: P, maximum_attempts: u32) -> Self
pub fn custom(inner: P, maximum_attempts: u32) -> Self
Creates a new instance with a custom inner policy.
§Example
fn customize_retry_policy(builder: impl RequestOptionsBuilder) -> impl RequestOptionsBuilder {
builder.with_retry_policy(LimitedAttemptCount::custom(AlwaysRetry, 10))
}§Example
use std::time::Instant;
let policy = LimitedAttemptCount::custom(AlwaysRetry, 2);
assert!(policy.on_error(Instant::now(), 1, false, error::Error::other(format!("test"))).is_continue());
assert!(policy.on_error(Instant::now(), 2, false, error::Error::other(format!("test"))).is_exhausted());Trait Implementations§
Source§impl<P> Debug for LimitedAttemptCount<P>where
P: RetryPolicy + Debug,
impl<P> Debug for LimitedAttemptCount<P>where
P: RetryPolicy + Debug,
Source§impl<P> RetryPolicy for LimitedAttemptCount<P>where
P: RetryPolicy,
impl<P> RetryPolicy for LimitedAttemptCount<P>where
P: RetryPolicy,
Auto Trait Implementations§
impl<P> Freeze for LimitedAttemptCount<P>where
P: Freeze,
impl<P> RefUnwindSafe for LimitedAttemptCount<P>where
P: RefUnwindSafe,
impl<P> Send for LimitedAttemptCount<P>
impl<P> Sync for LimitedAttemptCount<P>
impl<P> Unpin for LimitedAttemptCount<P>where
P: Unpin,
impl<P> UnwindSafe for LimitedAttemptCount<P>where
P: UnwindSafe,
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> RetryPolicyExt for Twhere
T: RetryPolicy,
impl<T> RetryPolicyExt for Twhere
T: RetryPolicy,
Source§fn with_time_limit(self, maximum_duration: Duration) -> LimitedElapsedTime<Self>
fn with_time_limit(self, maximum_duration: Duration) -> LimitedElapsedTime<Self>
Decorate a
RetryPolicy to limit the total elapsed time in the retry loop. Read moreSource§fn with_attempt_limit(self, maximum_attempts: u32) -> LimitedAttemptCount<Self>
fn with_attempt_limit(self, maximum_attempts: u32) -> LimitedAttemptCount<Self>
Decorate a RetryPolicy to limit the number of retry attempts. Read more