pub struct BackoffEntry {
pub attempt_count: u32,
pub last_attempt: Instant,
pub next_attempt_after: Duration,
}Expand description
Represents the backoff state for a single peer or operation.
Fields§
§attempt_count: u32The number of attempts made so far.
last_attempt: InstantThe Instant when the last attempt was made.
next_attempt_after: DurationThe duration after which the next attempt can be made.
Implementations§
Source§impl BackoffEntry
impl BackoffEntry
Sourcepub fn time_until_retry(&self) -> Duration
pub fn time_until_retry(&self) -> Duration
Returns the time remaining until the next retry attempt is allowed.
Sourcepub fn record_attempt(&mut self)
pub fn record_attempt(&mut self)
Records an attempt, updating the attempt count and calculating the next backoff duration.
Sourcepub fn record_success(&mut self)
pub fn record_success(&mut self)
Resets the backoff state to initial values, typically after a successful operation.
Sourcepub fn should_give_up(&self) -> bool
pub fn should_give_up(&self) -> bool
Checks if further retry attempts should be given up.
Trait Implementations§
Source§impl Clone for BackoffEntry
impl Clone for BackoffEntry
Source§fn clone(&self) -> BackoffEntry
fn clone(&self) -> BackoffEntry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for BackoffEntry
impl RefUnwindSafe for BackoffEntry
impl Send for BackoffEntry
impl Sync for BackoffEntry
impl Unpin for BackoffEntry
impl UnwindSafe for BackoffEntry
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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>
Converts
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>
Converts
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