1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use crate::v5::schema::MangaDexErrorResponse;
pub type Result<T, E = Error> = std::result::Result<T, E>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("error parsing the URL")]
ParseUrlError(#[from] url::ParseError),
#[error("failed to send a request to MangaDex: {0}")]
RequestError(#[from] reqwest::Error),
#[error("failed to build the request: {0}")]
BuilderError(#[from] derive_builder::UninitializedFieldError),
#[error("missing auth tokens; please log in to MangaDex")]
MissingTokens,
#[error("not a valid username: {0}")]
UsernameError(String),
#[error("not a valid password: {0}")]
PasswordError(String),
#[error("an error occurred while pinging the MangaDex server")]
PingError,
#[error("an error occurred with the MangaDex API request: {0}")]
Api(#[from] MangaDexErrorResponse),
#[error("failed to build a request: {0}")]
RequestBuilderError(String),
#[error("an error occurred while parsing the type: {0}")]
ParseError(String),
#[error(transparent)]
UnexpectedError(#[from] anyhow::Error),
}