Struct LimitedElapsedTime

Source
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

Implementations§

Source§

impl LimitedElapsedTime

Source

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,

Source

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,

Source§

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

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

impl<P> PollingPolicy for LimitedElapsedTime<P>
where P: PollingPolicy + 'static,

Source§

fn on_error(&self, start: Instant, count: u32, error: Error) -> LoopState

Query the polling policy after an error. Read more
Source§

fn on_in_progress( &self, start: Instant, count: u32, operation_name: &str, ) -> Option<Error>

Called when the LRO is successfully polled, but the LRO is still in progress.

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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PollingPolicyExt for T
where T: PollingPolicy,

Source§

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>

Decorate a PollingPolicy to limit the number of poll attempts. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T