pub enum TurnFailureKind {
RateLimit,
Timeout,
Unavailable,
Auth,
BadRequest,
Other,
}Expand description
Provider-agnostic classification of a durable turn failure (#756).
Local mirror of the wire TurnFailureKind, following the same
decouple-edges-from-the-wire-schema convention as CompactionReason.
Variants§
RateLimit
The provider rejected the call for exceeding its rate limit.
Timeout
The call exceeded its deadline.
The provider or a dependency it needs was unreachable.
Auth
A credential/authentication failure.
BadRequest
The request itself was invalid.
Other
Any other failure, including an unspecified wire kind.
Implementations§
Source§impl TurnFailureKind
impl TurnFailureKind
Sourcepub const fn is_retryable(self) -> bool
pub const fn is_retryable(self) -> bool
Whether retrying the call could plausibly succeed, mirroring
DialError::is_retryable’s transient-vs-terminal split: a provider
hiccup (rate limit, timeout, unavailable) is worth retrying; a
credential or malformed-request failure will fail identically again,
and an unclassified Other failure is treated conservatively as
non-retryable rather than implying a resend will help when it’s
unknown whether it would.
Trait Implementations§
Source§impl Clone for TurnFailureKind
impl Clone for TurnFailureKind
Source§fn clone(&self) -> TurnFailureKind
fn clone(&self) -> TurnFailureKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TurnFailureKind
Source§impl Debug for TurnFailureKind
impl Debug for TurnFailureKind
impl Eq for TurnFailureKind
Source§impl PartialEq for TurnFailureKind
impl PartialEq for TurnFailureKind
impl StructuralPartialEq for TurnFailureKind
Auto Trait Implementations§
impl Freeze for TurnFailureKind
impl RefUnwindSafe for TurnFailureKind
impl Send for TurnFailureKind
impl Sync for TurnFailureKind
impl Unpin for TurnFailureKind
impl UnsafeUnpin for TurnFailureKind
impl UnwindSafe for TurnFailureKind
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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<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> ⓘ
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 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>
T in a tonic::Request