novel_api/common/
error.rs

1use http::StatusCode;
2use thiserror::Error;
3
4/// novel-api error
5#[must_use]
6#[derive(Debug, Error)]
7pub enum Error {
8    #[error(transparent)]
9    StdIo(#[from] std::io::Error),
10    #[error(transparent)]
11    StdSystemTime(#[from] std::time::SystemTimeError),
12    #[error(transparent)]
13    StdParseInt(#[from] std::num::ParseIntError),
14    #[error(transparent)]
15    Reqwest(#[from] reqwest::Error),
16    #[error(transparent)]
17    UnpadError(#[from] aes::cipher::block_padding::UnpadError),
18    #[error(transparent)]
19    Base64Simd(#[from] base64_simd::Error),
20    #[error(transparent)]
21    SerdeJson(#[from] sonic_rs::Error),
22    #[error(transparent)]
23    Toml(#[from] toml::de::Error),
24    #[error(transparent)]
25    Simdutf8(#[from] simdutf8::basic::Utf8Error),
26    #[error(transparent)]
27    SeaOrm(#[from] sea_orm::DbErr),
28    #[error(transparent)]
29    Chrono(#[from] chrono::ParseError),
30    #[error(transparent)]
31    Image(#[from] image::ImageError),
32    #[error(transparent)]
33    Keyring(#[from] keyring::Error),
34    #[error(transparent)]
35    Url(#[from] url::ParseError),
36    #[error(transparent)]
37    Cookie(#[from] cookie_store::CookieError),
38    #[error(transparent)]
39    CookieStore(#[from] cookie_store::Error),
40    #[error(transparent)]
41    StatusCode(#[from] http::status::InvalidStatusCode),
42    #[error(transparent)]
43    TomlSer(#[from] toml::ser::Error),
44    #[error(transparent)]
45    InvalidHeaderValue(#[from] http::header::InvalidHeaderValue),
46    #[error(transparent)]
47    Dialoguer(#[from] dialoguer::Error),
48    #[error(transparent)]
49    InvalidLength(#[from] hmac::digest::InvalidLength),
50    #[error("{0}")]
51    Rsa(String),
52    #[error(transparent)]
53    Askama(#[from] askama::Error),
54    #[error("{0}")]
55    AesGcmSiv(String),
56    #[error("{0}")]
57    Webp(String),
58    #[error("{0}")]
59    Port(String),
60    #[error("{0}")]
61    NovelApi(String),
62    #[error("The HTTP request failed, status code: `{code}`, message: `{msg}`")]
63    Http { code: StatusCode, msg: String },
64}