pub struct Attempt {
pub err: StoreError,
pub transient: bool,
pub retry_after: Option<Duration>,
}Expand description
The outcome of a single failed attempt, handed back to the retry engine.
The caller (a store operation) decides whether the failure is transient
(worth retrying) and threads through any server retry_after hint. The
next gate populates these from
classify_error; the engine itself is SDK-agnostic.
Fields§
§err: StoreErrorThe error this attempt produced (surfaced to the caller if retries are exhausted or the error is non-transient).
transient: boolWhether the error is transient (throttle / timeout-class) and therefore retryable.
retry_after: Option<Duration>An optional server-supplied minimum delay (Retry-After); acts as a
floor on the next backoff.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Attempt
impl !UnwindSafe for Attempt
impl Freeze for Attempt
impl Send for Attempt
impl Sync for Attempt
impl Unpin for Attempt
impl UnsafeUnpin for Attempt
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.