Skip to main content

StatusError

Enum StatusError 

Source
#[non_exhaustive]
pub enum StatusError { Unsupported(String), Unavailable { uri: String, reason: String, source: Option<Box<dyn Error + Send + Sync>>, }, InvalidList { uri: String, reason: String, source: Option<Box<dyn Error + Send + Sync>>, }, UnresolvedKey { uri: String, key: String, source: KeyResolutionError, }, Expired { uri: String, expired_at: DateTime<Utc>, now: DateTime<Utc>, }, IndexOutOfRange { uri: String, idx: u64, len: usize, }, Invalid(String), }
Available on crate feature vc only.
Expand description

Why a StatusCheck did not pass.

The variants tell apart what a caller may want to handle differently: an Unavailable list may be fetched on a later attempt, an Expired one may be valid once its provider has refreshed it, and an UnresolvedKey depends on why the resolver failed, which its source says. An InvalidList or an IndexOutOfRange will not pass by trying again.

Where a variant has a source, Error::source returns it, and the message ends with it.

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

Unsupported(String)

The check does not understand the status type.

§

Unavailable

The status list could not be fetched: the request failed, the server answered with an error status, or the check refused a redirect. The source is the client’s error, when there is one.

Fields

§uri: String

The status list URI the credential references.

§reason: String

What went wrong, naming the URL of a redirect hop where it is not uri.

§source: Option<Box<dyn Error + Send + Sync>>

The underlying error.

§

InvalidList

The reference or the status list is not one the check can read or trust: a URI that is not a URL, a body that is not a status list token, a sub other than the URI, a signature that does not verify, a key that is not the issuer’s. The source is the underlying error, when there is one.

Fields

§uri: String

The status list URI the credential references.

§reason: String

What is wrong.

§source: Option<Box<dyn Error + Send + Sync>>

The underlying error.

§

UnresolvedKey

The key that signed the status list could not be resolved; the source is the resolver’s error.

Fields

§uri: String

The status list URI the credential references.

§key: String

The key reference, as the token’s header names it.

§source: KeyResolutionError

The resolver’s error.

§

Expired

The status list has expired.

Fields

§uri: String

The status list URI the credential references.

§expired_at: DateTime<Utc>

Its exp.

§now: DateTime<Utc>

The validation time.

§

IndexOutOfRange

The credential’s index is beyond the end of the status list.

Fields

§uri: String

The status list URI the credential references.

§idx: u64

The credential’s index.

§len: usize

The number of entries in the list.

§

Invalid(String)

The credential’s status makes it unusable: revoked, suspended, …

Trait Implementations§

Source§

impl Debug for StatusError

Source§

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

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

impl Display for StatusError

Source§

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

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

impl Error for StatusError

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<StatusError> for ValidationError

Source§

fn from(source: StatusError) -> Self

Converts to this type from the input type.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = !

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

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more