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    Sqlx(#[from] sea_orm::sqlx::Error),
30    #[error(transparent)]
31    Chrono(#[from] chrono::ParseError),
32    #[error(transparent)]
33    Image(#[from] image::ImageError),
34    #[error(transparent)]
35    Keyring(#[from] keyring::Error),
36    #[error(transparent)]
37    Url(#[from] url::ParseError),
38    #[error(transparent)]
39    Cookie(#[from] cookie_store::CookieError),
40    #[error(transparent)]
41    CookieStore(#[from] cookie_store::Error),
42    #[error(transparent)]
43    StatusCode(#[from] http::status::InvalidStatusCode),
44    #[error(transparent)]
45    TomlSer(#[from] toml::ser::Error),
46    #[error(transparent)]
47    InvalidHeaderValue(#[from] http::header::InvalidHeaderValue),
48    #[error(transparent)]
49    Dialoguer(#[from] dialoguer::Error),
50    #[error(transparent)]
51    InvalidLength(#[from] hmac::digest::InvalidLength),
52    #[error("{0}")]
53    Rsa(String),
54    #[error(transparent)]
55    Askama(#[from] askama::Error),
56    #[error("{0}")]
57    AesGcmSiv(String),
58    #[error("{0}")]
59    Webp(String),
60    #[error("{0}")]
61    Port(String),
62    #[error("{0}")]
63    NovelApi(String),
64    #[error("The HTTP request failed, status code: `{code}`, message: `{msg}`")]
65    Http { code: StatusCode, msg: String },
66}