pub struct LimitedElapsedTime<P = Aip194Strict>where
P: PollingPolicy,{ /* private fields */ }Expand description
A polling policy decorator that limits the total time in the polling loop.
This policy decorates an inner policy and limits the duration of polling
loops. While the time spent in the polling loop (including time in backoff)
is less than the prescribed duration the on_error() method returns the
results of the inner policy. After that time it returns
Exhausted if the inner policy returns
Continue.
The remaining_time() function returns the remaining time. This is always
Duration::ZERO once or after the policy’s
deadline is reached.
§Parameters
P- the inner polling policy, defaults to Aip194Strict.
Implementations§
Source§impl LimitedElapsedTime
impl LimitedElapsedTime
Sourcepub fn new(maximum_duration: Duration) -> Self
pub fn new(maximum_duration: Duration) -> Self
Creates a new instance, with the default inner policy.
§Example
use std::time::{Duration, Instant};
let policy = LimitedElapsedTime::new(Duration::from_secs(10));
let start = Instant::now() - Duration::from_secs(20);
assert!(policy.on_error(start, 1, error::Error::authentication("transient")).is_exhausted());Source§impl<P> LimitedElapsedTime<P>where
P: PollingPolicy,
impl<P> LimitedElapsedTime<P>where
P: PollingPolicy,
Sourcepub fn custom(inner: P, maximum_duration: Duration) -> Self
pub fn custom(inner: P, maximum_duration: Duration) -> Self
Creates a new instance with a custom inner policy.
§Example
use std::time::{Duration, Instant};
let policy = LimitedElapsedTime::custom(AlwaysContinue, Duration::from_secs(10));
let start = Instant::now() - Duration::from_secs(20);
assert!(policy.on_error(start, 1, error::Error::other("err")).is_exhausted());Trait Implementations§
Source§impl<P> Debug for LimitedElapsedTime<P>where
P: PollingPolicy + Debug,
impl<P> Debug for LimitedElapsedTime<P>where
P: PollingPolicy + Debug,
Source§impl<P> PollingPolicy for LimitedElapsedTime<P>where
P: PollingPolicy + 'static,
impl<P> PollingPolicy for LimitedElapsedTime<P>where
P: PollingPolicy + 'static,
Auto Trait Implementations§
impl<P> Freeze for LimitedElapsedTime<P>where
P: Freeze,
impl<P> RefUnwindSafe for LimitedElapsedTime<P>where
P: RefUnwindSafe,
impl<P> Send for LimitedElapsedTime<P>
impl<P> Sync for LimitedElapsedTime<P>
impl<P> Unpin for LimitedElapsedTime<P>where
P: Unpin,
impl<P> UnwindSafe for LimitedElapsedTime<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> PollingPolicyExt for Twhere
T: PollingPolicy,
impl<T> PollingPolicyExt for Twhere
T: PollingPolicy,
Source§fn with_time_limit(self, maximum_duration: Duration) -> LimitedElapsedTime<Self>
fn with_time_limit(self, maximum_duration: Duration) -> LimitedElapsedTime<Self>
Decorate a PollingPolicy to limit the total elapsed time in the
polling loop. Read more
Source§fn with_attempt_limit(self, maximum_attempts: u32) -> LimitedAttemptCount<Self>
fn with_attempt_limit(self, maximum_attempts: u32) -> LimitedAttemptCount<Self>
Decorate a PollingPolicy to limit the number of poll attempts. Read more