Skip to main content

Error

Enum Error 

Source
#[non_exhaustive]
pub enum Error {
Show 21 variants Configuration(String), InvalidIdentifier { kind: &'static str, reason: &'static str, }, CredentialsRejected { code: i32, name: Option<&'static str>, }, SessionValidationRejected { code: i32, name: Option<&'static str>, }, InconsistentResponseStatus { success: bool, code: i32, }, MissingAuthenticationToken, InvalidAuthenticationToken, NotAuthenticated, AmbiguousSessionValidation, Provider(ProviderError), Transport(Error), UnexpectedStatus { status: u16, }, UnexpectedStatusResponse, LocallyRateLimited { kind: RateLimitKind, retry_after: Duration, }, ProviderRateLimited { kind: RateLimitKind, retry_after: Duration, }, Url(ParseError), ResponseTooLarge { limit_bytes: usize, }, Decode(Error), Encode(Error), AmbiguousMutation { operation: &'static str, code: Option<i32>, name: Option<&'static str>, origin: Option<AmbiguityOrigin>, }, BackgroundTaskFailed { task: &'static str, },
}
Expand description

Errors returned by the ProjectX client.

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

Configuration(String)

Client configuration was invalid.

§

InvalidIdentifier

A provider identifier was invalid.

Fields

§kind: &'static str

Identifier category.

§reason: &'static str

Public-safe reason for rejection.

§

CredentialsRejected

The provider rejected the supplied authentication credentials.

Fields

§code: i32

Public provider rejection code.

§name: Option<&'static str>

Provider-published name for code, when /api/Auth/loginKey and /api/Auth/loginApp publish one for it.

§

SessionValidationRejected

The provider rejected validation of the current session.

Fields

§code: i32

Public provider rejection code.

§name: Option<&'static str>

Provider-published name for code, when /api/Auth/validate publishes one for it.

§

InconsistentResponseStatus

The provider’s success flag and required error code disagreed.

The provider did not declare a rejection, so this reports the contradictory pair as received instead of naming a rejection code.

Fields

§success: bool

Provider success flag.

§code: i32

Provider error code.

§

MissingAuthenticationToken

A successful authentication response omitted a usable bearer token.

§

InvalidAuthenticationToken

A provider authentication response contained an invalid bearer token.

§

NotAuthenticated

No authenticated bearer token is available.

§

AmbiguousSessionValidation

Session validation may have rotated the provider token, but no trustworthy response was received.

§

Provider(ProviderError)

The provider rejected an otherwise valid request.

§

Transport(Error)

The HTTP transport failed.

§

UnexpectedStatus

The provider returned a non-successful HTTP status.

Fields

§status: u16

Numeric HTTP status code.

§

UnexpectedStatusResponse

The provider status endpoint returned a body other than pong.

§

LocallyRateLimited

A request was not sent because the shared local budget was exhausted.

Fields

§kind: RateLimitKind

Provider budget that rejected local admission.

§retry_after: Duration

Minimum time until this client can admit another request.

§

ProviderRateLimited

The provider rejected an authenticated request with HTTP 429.

Fields

§kind: RateLimitKind

Provider budget associated with the rejected endpoint.

§retry_after: Duration

Delay from Retry-After, or the configured window when absent.

§

Url(ParseError)

A URL could not be constructed.

§

ResponseTooLarge

A provider response exceeded the configured safety limit.

Fields

§limit_bytes: usize

Configured response limit.

§

Decode(Error)

A provider response could not be decoded.

§

Encode(Error)

A request could not be encoded as JSON.

§

AmbiguousMutation

A money-moving mutation may have reached the provider but did not produce a trustworthy response.

A decoded provider rejection that is documented as pending, unknown, or otherwise not a definitive rejection stays ambiguous, and carries the provider’s code and published name so the caller can tell OrderPending apart from an unrecognized future code. When no provider rejection was decoded, origin instead carries the transport-level evidence for the ambiguity. Exactly one of code and origin is set in every error this crate constructs: a decoded rejection is the evidence, and otherwise a classified — or explicitly AmbiguityOrigin::Unclassified — origin is.

Fields

§operation: &'static str

Public-safe operation name.

§code: Option<i32>

Provider error code, when a provider rejection was decoded.

§name: Option<&'static str>

Provider-published name for code, when the endpoint’s published error-code table defines it.

§origin: Option<AmbiguityOrigin>

Transport-level origin of the ambiguity, when no provider rejection was decoded.

§

BackgroundTaskFailed

A library-owned background task terminated unexpectedly.

Fields

§task: &'static str

Public-safe task name.

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Display for Error

Source§

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

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

impl Error for Error

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<ProviderError> for Error

Source§

fn from(source: ProviderError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

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