use thiserror::Error;
pub type KagiResult<T> = Result<T, KagiError>;
#[derive(Debug, Error)]
pub enum KagiError {
#[error("Config error: {0}")]
ConfigError(config::ConfigError),
#[error("Request failed: {0}")]
ReqwestError(reqwest::Error),
#[error("HTTP StatusCode: {0}")]
StatusCodeError(reqwest::StatusCode),
#[error("Request failed: {0}")]
ReqwestMiddlewareError(reqwest_middleware::Error),
#[error("VCRMiddleware failed: {0}")]
VCRMiddlewareError(String),
#[error("URL error: {0}")]
UrlError(url::ParseError),
#[error("Invalid header: {0}")]
HeaderError(String),
#[error("Environment error: {0}")]
EnvError(&'static str),
}