Skip to main content

Kind

Enum Kind 

Source
#[non_exhaustive]
pub enum Kind { VersionMismatch, MissingField, TypeMismatch, UnknownVersion, UnknownVariant, NumberOutOfRange, MissingFile, }
Expand description

Well-known classes of load-side failure.

Used in two roles:

  • As the source of an Error via From<Kind> (and the matching From<Kind> for Error which classifies recoverable / critical according to Kind::is_recoverable).
  • As a probe value in error chains — high-level callers can introspect the kind to decide whether to try a fallback loader.

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

VersionMismatch

The manifest’s $version does not match the loader’s expected Load::VERSION.

§

MissingField

A required field is absent from the record.

§

TypeMismatch

The shape of the saved value does not match what the loader expected (e.g. found an array where an object was needed).

§

UnknownVersion

The manifest’s version is recognized as not matching the current schema, and the type’s Load::load_legacy has no upgrade path for it.

§

UnknownVariant

The variant tag read from the wire format does not match any known variant of the target enum.

§

NumberOutOfRange

A numeric value in the manifest does not fit in the requested Rust type (either out of range or would lose precision).

§

MissingFile

A $handle references a file name that is not registered in the manifest’s files set.

Implementations§

Source§

impl Kind

Source

pub const fn as_str(self) -> &'static str

Stable, human-readable description of this kind. Used as the default error message when constructing an Error from a Kind.

Source

pub const fn is_recoverable(self) -> bool

Whether an error of this kind should be treated as recoverable by probing APIs (i.e., suitable for triggering a fallback to an alternative load strategy).

Recoverable kinds describe “the data did not match what this loader expected” (a different version or shape might still succeed). Critical kinds describe structural or integrity problems where retrying would be pointless or unsafe.

Trait Implementations§

Source§

impl Clone for Kind

Source§

fn clone(&self) -> Kind

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 Kind

Source§

impl Debug for Kind

Source§

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

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

impl Display for Kind

Source§

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

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

impl Error for Kind

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Kind> for Error

Source§

fn from(kind: Kind) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Kind

§

impl RefUnwindSafe for Kind

§

impl Send for Kind

§

impl Sync for Kind

§

impl Unpin for Kind

§

impl UnsafeUnpin for Kind

§

impl UnwindSafe for Kind

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.