pub struct AttachBackoff {
pub base: Duration,
pub max: Duration,
pub max_retries: u32,
}Expand description
Bounded exponential-backoff policy for reconnecting a dropped attach stream.
On a premature stream drop (EOF before the agent’s terminal result, or a
read error) the attach task waits min(max, base * 2^attempt) — with a
per-(agent, attempt) jitter to decorrelate reconnect storms across agents —
then reconnects, up to max_retries consecutive failures. Making progress
(new frames) resets the attempt counter. When the budget is exhausted the
task exits and the poll loop remains the long-term re-attach safety net.
Fields§
§base: DurationDelay before the first reconnect.
max: DurationCeiling on any single backoff delay.
max_retries: u32Maximum consecutive reconnect attempts before giving up in-path.
Trait Implementations§
Source§impl Clone for AttachBackoff
impl Clone for AttachBackoff
Source§fn clone(&self) -> AttachBackoff
fn clone(&self) -> AttachBackoff
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AttachBackoff
impl Debug for AttachBackoff
Source§impl Default for AttachBackoff
impl Default for AttachBackoff
impl Copy for AttachBackoff
Auto Trait Implementations§
impl Freeze for AttachBackoff
impl RefUnwindSafe for AttachBackoff
impl Send for AttachBackoff
impl Sync for AttachBackoff
impl Unpin for AttachBackoff
impl UnsafeUnpin for AttachBackoff
impl UnwindSafe for AttachBackoff
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,
§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>
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