fitgirl_decrypt/
error.rs

1use serde::Serialize;
2use thiserror::Error;
3
4/// Possible errors during requesting/decrypting/decoding/deserialization e.g.
5#[derive(Debug, Error)]
6pub enum Error {
7    #[error("key length not match! expected 32, got {0}")]
8    KeyLengthMismatch(usize),
9    #[error("iterations must be non zero!")]
10    ZeroIterations,
11    #[error("url must be like https://paste.fitgirl-repacks.site/?{{pasteid}}#{{key_base58}}")]
12    IllFormedURL,
13
14    #[cfg(feature = "ureq")]
15    #[error("request error: {0}")]
16    Ureq(#[from] ureq::Error),
17    #[cfg(feature = "reqwest")]
18    #[error("request error: {0}")]
19    Reqwest(#[from] reqwest::Error),
20
21    #[cfg(feature = "nyquest")]
22    #[error("request error: {0}")]
23    Nyquest(#[from] nyquest::Error),
24    #[cfg(feature = "nyquest")]
25    #[error("build client error: {0}")]
26    NyquestBuildClient(#[from] nyquest::client::BuildClientError),
27
28    #[error("base58 decode error: {0}")]
29    Base58(#[from] bs58::decode::Error),
30    #[error("base64 decode error: {0}")]
31    Base64(#[from] base64::DecodeError),
32    #[error("zlib decompress error")]
33    DecompressError,
34
35    #[error("aes-256-gcm decryption error")]
36    AesGcm,
37
38    #[error("deserialize error: {0}")]
39    JSONSerialize(#[from] serde_json::Error),
40}
41
42impl Serialize for Error {
43    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
44    where
45        S: serde::Serializer,
46    {
47        serializer.serialize_str(&self.to_string())
48    }
49}