kagi_api/
error.rs

1use thiserror::Error;
2
3/// A `Result` alias where the `Err` case is `kagi_api::Error`.
4pub type KagiResult<T> = Result<T, KagiError>;
5
6#[derive(Debug, Error)]
7pub enum KagiError {
8    /// An error occurred while processing a [crate::KagiConfig].
9    #[error("Config error: {0}")]
10    ConfigError(config::ConfigError),
11
12    /// An error occurred in connection with performing a [reqwest].
13    #[error("Request failed: {0}")]
14    ReqwestError(reqwest::Error),
15
16    #[error("HTTP StatusCode: {0}")]
17    StatusCodeError(reqwest::StatusCode),
18
19    /// An error performed while handling [reqwest_middleware].
20    #[error("Request failed: {0}")]
21    ReqwestMiddlewareError(reqwest_middleware::Error),
22
23    /// An error occurred while handling the particular [rvcr] recording middleware.
24    #[error("VCRMiddleware failed: {0}")]
25    VCRMiddlewareError(String),
26
27    /// An error occurred parsing a [url::Url].
28    #[error("URL error: {0}")]
29    UrlError(url::ParseError),
30
31    /// An error occurred when formulating an HTTP header.
32    #[error("Invalid header: {0}")]
33    HeaderError(String),
34
35    /// An error occurred when reading an environment variable.
36    #[error("Environment error: {0}")]
37    EnvError(&'static str),
38}