#[non_exhaustive]pub enum Error {
Json(Error),
Url(ParseError),
Authorization(InvalidHeaderValue),
Request(Error),
Ratelimited {
limit: Option<usize>,
remaining: Option<usize>,
time_until_reset: Option<String>,
},
Status(StatusCode, Option<APIError>, Option<Value>),
FetchFrom(String),
ParseTimeLike {
reason: String,
offender: Option<String>,
original_err: Option<ParseError>,
},
}
Expand description
Represents all possible errors while using methods from this lib (brawl-api
) in functions
such as fetches.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Json(Error)
Represents an error occurred while using serde_json
for serializing/deserializing JSON
data. (A serde_json
crate error)
Url(ParseError)
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(Error)
Represents an error occurred while requesting to the API or while receiving its data.
(A reqwest
crate error)
Ratelimited
Represents an API ratelimit.
Fields
limit: Option<usize>
Maximum amount of requests per minute allowed. None indicates this was not given.
Status(StatusCode, Option<APIError>, Option<Value>)
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 ofAPIError
, 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
original_err: Option<ParseError>
The original chrono::ParseError
, if there was any (otherwise, it’s a custom
error triggered by the library).