Skip to main content

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    StdTryFromSliceError(#[from] std::array::TryFromSliceError),
16    #[error(transparent)]
17    Reqwest(#[from] reqwest::Error),
18    #[error(transparent)]
19    UnpadError(#[from] aes::cipher::block_padding::Error),
20    #[error(transparent)]
21    Base64Simd(#[from] base64_simd::Error),
22    #[error(transparent)]
23    SerdeJson(#[from] sonic_rs::Error),
24    #[error(transparent)]
25    Toml(#[from] toml::de::Error),
26    #[error(transparent)]
27    Simdutf8(#[from] simdutf8::basic::Utf8Error),
28    #[error(transparent)]
29    Toasty(#[from] toasty::Error),
30    #[error(transparent)]
31    Jiff(#[from] jiff::Error),
32    #[error(transparent)]
33    Image(#[from] image::ImageError),
34    #[error(transparent)]
35    Keyring(#[from] keyring_core::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    Zip(#[from] zip::result::ZipError),
56    #[error(transparent)]
57    StripPrefixError(#[from] std::path::StripPrefixError),
58    #[error("{0}")]
59    AesGcmSiv(String),
60    #[error("{0}")]
61    Webp(String),
62    #[error("{0}")]
63    Port(String),
64    #[error("{0}")]
65    NovelApi(String),
66    #[error("The HTTP request failed, status code: `{code}`, message: `{msg}`")]
67    Http { code: StatusCode, msg: String },
68}