pub struct Retry<'a> {
gctx: &'a GlobalContext,
retries: u64,
max_retries: u64,
}Expand description
State for managing retrying a network operation.
Fields§
§gctx: &'a GlobalContext§retries: u64The number of failed attempts that have been done so far.
Starts at 0, and increases by one each time an attempt fails.
max_retries: u64The maximum number of times the operation should be retried.
0 means it should never retry.
Implementations§
Source§impl<'a> Retry<'a>
impl<'a> Retry<'a>
pub fn new(gctx: &'a GlobalContext) -> CargoResult<Retry<'a>>
Sourcepub fn try<T>(&mut self, f: impl FnOnce() -> CargoResult<T>) -> RetryResult<T>
pub fn try<T>(&mut self, f: impl FnOnce() -> CargoResult<T>) -> RetryResult<T>
Calls the given callback, and returns a RetryResult which
indicates whether or not this needs to be called again at some point
in the future to retry the operation if it failed.
Sourcefn next_sleep_ms(&self) -> u64
fn next_sleep_ms(&self) -> u64
Gets the next sleep duration in milliseconds.
Sourcefn parse_retry_after(
response: &HttpNotSuccessful,
now: &Timestamp,
) -> Option<u64>
fn parse_retry_after( response: &HttpNotSuccessful, now: &Timestamp, ) -> Option<u64>
Parse the HTTP Retry-After header.
Returns the number of milliseconds to wait before retrying according to the header.
Auto Trait Implementations§
impl<'a> Freeze for Retry<'a>
impl<'a> RefUnwindSafe for Retry<'a>
impl<'a> Send for Retry<'a>
impl<'a> Sync for Retry<'a>
impl<'a> Unpin for Retry<'a>
impl<'a> UnwindSafe for Retry<'a>
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes