Skip to main content

kodik_utils/
error.rs

1//! Error types for the Kodik library.
2use reqwest::header;
3use std::string;
4use thiserror::Error as ThisError;
5
6pub type Result<T, E = Error> = std::result::Result<T, E>;
7
8/// Errors from kodik.
9#[derive(ThisError, Debug)]
10#[non_exhaustive]
11pub enum Error {
12    /// Reqwest HTTP client error.
13    #[error(transparent)]
14    Reqwest(#[from] reqwest::Error),
15
16    /// IO error.
17    #[error(transparent)]
18    Io(#[from] std::io::Error),
19
20    /// Base64 decoding error.
21    #[error(transparent)]
22    Decode(#[from] base64::DecodeError),
23
24    /// UTF-8 conversion error.
25    #[error(transparent)]
26    FromUtf8(#[from] string::FromUtf8Error),
27
28    /// Invaliad header value
29    #[error(transparent)]
30    InvalidHeaderValue(#[from] header::InvalidHeaderValue),
31
32    #[error(transparent)]
33    Regex(#[from] lazy_regex::regex::Error),
34
35    #[error(transparent)]
36    SerdeYaml(#[from] serde_saphyr::Error),
37
38    /// Regex matching error.
39    #[error("{0}")]
40    RegexMatch(String),
41
42    /// Not found error.
43    #[error("{0}")]
44    NotFound(String),
45}