Skip to main content

Class

Enum Class 

Source
#[non_exhaustive]
pub enum Class { Cancelled, Corruption, ResourceExhaustion(ResourceExhaustionKind), Validation, Unsupported, Unauthenticated, PermissionDenied, Conflict, NotFound, Retryable, }
Expand description

The recovery approach suggested by an error.

Variants are listed in suggested recovery precedence, highest first; smaller values have higher precedence under Ord. crate::Error::dominant_class() selects the smallest class present in the error tree. When multiple classes are present, check earlier variants before later ones: cancellation means stop, while retryability alone does not override a failure that needs another remedy. Adapt this precedence to the operation and its concrete errors. Classification iterators retain error traversal order, not this precedence, and class predicates report presence independently rather than suppressing lower-priority classes.

A class guides recovery, but does not establish that it is safe. Inspect concrete errors and partial outcomes before repeating operations with side effects; see recovery.

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.
§

Cancelled

The caller requested cancellation; stop rather than retry.

§

Corruption

Stored or streamed data was malformed or internally inconsistent.

Recovery may require repairing, replacing, or re-fetching the data, rather than correcting the caller’s input.

§

ResourceExhaustion(ResourceExhaustionKind)

A finite resource was exhausted.

Recovery may require reducing resource use or making more capacity available before retrying. The kind distinguishes an application-configured allocation limit from an allocation failure, so callers can choose whether to adjust a limit or address the allocation itself.

§

Validation

Function or method input was invalid.

Recovery requires correcting the input rather than retrying the same request unchanged.

§

Unsupported

A required capability is unsupported; switch implementation, format, protocol, or strategy.

§

Unauthenticated

Credentials are missing or rejected; obtain or refresh credentials.

§

PermissionDenied

Authorization or permissions are insufficient; obtain authorization or change permissions.

§

Conflict

Current state conflicts with the operation; refresh or reconcile state before retrying.

§

NotFound

A requested resource does not exist.

Callers may recover by creating the resource, using a fallback, or treating absence as an expected outcome. This distinguishes absence from failures that prevent determining whether the resource exists.

§

Retryable

Retrying the operation may succeed.

Callers may recover with a bounded retry, possibly after waiting, without changing the request. This is not a guarantee of success or a statement that repeating an operation with side effects is safe.

Trait Implementations§

Source§

impl Clone for Class

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Class

Source§

impl Debug for Class

Source§

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

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

impl Eq for Class

Source§

impl Ord for Class

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl PartialEq for Class

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialOrd for Class

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for Class

Auto Trait Implementations§

§

impl Freeze for Class

§

impl RefUnwindSafe for Class

§

impl Send for Class

§

impl Sync for Class

§

impl Unpin for Class

§

impl UnsafeUnpin for Class

§

impl UnwindSafe for Class

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.