pub enum AttemptOutcome {
Transient,
HardFailure,
Success,
}Expand description
Outcome of a single retry attempt, used to feed a CircuitBreaker.
We keep this intentionally narrow: rate-limit / timeout errors are TRANSIENT and should NOT count toward the breaker; everything else counts as a HARD failure that contributes to opening the breaker.
Variants§
Transient
Transient error: counts as a successful iteration, does NOT trip the breaker.
Examples: AppError::RateLimited, AppError::Timeout, AppError::DbBusy.
HardFailure
Hard failure: counts toward the breaker’s failure threshold.
Examples: AppError::Validation, AppError::Conflict,
AppError::Embedding, AppError::Internal.
Success
Successful iteration: resets the consecutive-failure counter.
Trait Implementations§
Source§impl Clone for AttemptOutcome
impl Clone for AttemptOutcome
Source§fn clone(&self) -> AttemptOutcome
fn clone(&self) -> AttemptOutcome
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 moreimpl Copy for AttemptOutcome
Source§impl Debug for AttemptOutcome
impl Debug for AttemptOutcome
impl Eq for AttemptOutcome
Source§impl PartialEq for AttemptOutcome
impl PartialEq for AttemptOutcome
Source§fn eq(&self, other: &AttemptOutcome) -> bool
fn eq(&self, other: &AttemptOutcome) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for AttemptOutcome
Auto Trait Implementations§
impl Freeze for AttemptOutcome
impl RefUnwindSafe for AttemptOutcome
impl Send for AttemptOutcome
impl Sync for AttemptOutcome
impl Unpin for AttemptOutcome
impl UnsafeUnpin for AttemptOutcome
impl UnwindSafe for AttemptOutcome
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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