[][src]Enum brawl_api::error::Error

#[non_exhaustive]
pub enum Error {
    Json(SerdeError),
    Url(UrlError),
    Authorization(InvalidHeaderValue),
    Request(ReqwestError),
    Ratelimited {
        limit: Option<usize>,
        remaining: Option<usize>,
        time_until_reset: Option<String>,
    },
    Status(StatusCodeOption<APIError>, Option<JsonValue>),
    FetchFrom(String),
    ParseTimeLike {
        reason: String,
        offender: Option<String>,
        original_err: Option<ParseError>,
    },
}

Represents all possible errors while using methods from this lib (brawl-api) in functions such as fetches.

Variants (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.

Represents an error occurred while using serde_json for serializing/deserializing JSON data. (A serde_json crate error)

Represents an error indicating a malformed URL.

Authorization(InvalidHeaderValue)

Represents an error indicating that an invalid Authorization header was specified. This error can be caused by the user of this lib when an invalid auth key is given. (Note that invalid auth key is covered by the Status error, but if it is given in an invalid format - which is impossible to be a valid key -, this error may appear.) Contains the invalid header value inside (as the .0 field).

Request(ReqwestError)

Represents an error occurred while requesting to the API or while receiving its data. (A reqwest crate error)

Ratelimited

Represents an API ratelimit.

Fields of Ratelimited

limit: Option<usize>

Maximum amount of requests per minute allowed. None indicates this was not given.

remaining: Option<usize>

Amount remaining (this should normally be 0). None indicates this was not given

time_until_reset: Option<String>

Stringified timestamp (seconds) at which the ratelimit block will be lifted, or None for not ratelimited. This is only an Option in case a change is needed, considering that this will always be a Some(String) if this specific error is raised.

Represents an arbitrary status code error received from the API. E.g. 400, 403, 404, 429, 500, 503

  • Field .0 is the status code object;
  • Field .1 is an optional instance of APIError, if it may be parsed like so;
  • Field .2 is the raw error response as parsed json, if it had that format. (If field .2 is None, that implies field .1 is None, since an APIError comes from a JSON object).
FetchFrom(String)

Represents an error while operating the conversion of types through FetchFrom. Note that any errors while fetching things are either an Error::Json or Error::Request, while this error refers to additional operations done after the fetching is done.

At field .0, there is a String object describing what occurred.

ParseTimeLike

Represents an error while using TimeLike.parse. Note that this is feature-gated by the chrono feature (meaning that, if it is disabled, this variant is removed).

Fields of ParseTimeLike

reason: String

The reason why this error occurred.

offender: Option<String>

The offending (invalid) string that triggered this error, if any.

original_err: Option<ParseError>

The original chrono::ParseError, if there was any (otherwise, it's a custom error triggered by the library).

Trait Implementations

impl Debug for Error[src]

impl Display for Error[src]

impl Error for Error[src]

impl From<Error> for Error[src]

impl From<Error> for Error[src]

impl From<ParseError> for Error[src]

impl From<ParseError> for Error[src]

Auto Trait Implementations

impl !RefUnwindSafe for Error

impl Send for Error

impl Sync for Error

impl Unpin for Error

impl !UnwindSafe for Error

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> FetchInto<U> for T where
    T: Sync + Send,
    U: FetchFrom<T> + Sync + Send
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.