Skip to main content

BackendErrorKind

Enum BackendErrorKind 

Source
#[non_exhaustive]
pub enum BackendErrorKind { Transport, Protocol, Timeout, Auth, Cluster, BusyLoading, ScriptNotLoaded, Other, }
Expand description

Classified backend transport errors, kept backend-agnostic on purpose (#88). Each variant maps a family of native backend error kinds into a stable, consumer-matchable shape.

Consumers requiring the exact native kind for a Valkey backend must go through ff_backend_valkey explicitly; ff-sdk/ff-server’s public surface will only ever hand out BackendErrorKind.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Transport

Network / I/O failure: the request may or may not have been processed. Typically retryable with backoff.

§

Protocol

Backend rejected the request on protocol / parse grounds. Not retryable without a fix.

§

Timeout

Backend timed out responding to the request. Retryable.

§

Auth

Authentication / authorization failure. Not retryable.

§

Cluster

Cluster topology churn (MOVED, ASK, CLUSTERDOWN, MasterDown, CrossSlot, ConnectionNotFoundForRoute, AllConnectionsUnavailable). Retryable after topology settles.

§

BusyLoading

Backend is temporarily busy loading state (e.g. Valkey LOADING). Retryable.

§

ScriptNotLoaded

Backend indicates the referenced script/function does not exist. Typically handled by the caller via re-load.

§

Other

Any other classified error from the backend. Fallback bucket for native kinds outside the curated set above.

Implementations§

Source§

impl BackendErrorKind

Source

pub fn as_stable_str(&self) -> &'static str

Stable, lowercase-kebab label suitable for log fields / HTTP kind body slots. Guaranteed not to change across releases for the existing variants.

Source

pub fn is_retryable(&self) -> bool

Whether a caller should consider this kind retryable with backoff. Conservative — auth + protocol + other are terminal.

Trait Implementations§

Source§

impl Clone for BackendErrorKind

Source§

fn clone(&self) -> BackendErrorKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BackendErrorKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for BackendErrorKind

Source§

fn eq(&self, other: &BackendErrorKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for BackendErrorKind

Source§

impl Eq for BackendErrorKind

Source§

impl StructuralPartialEq for BackendErrorKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.