kagi-api 0.1.1

Kagi.com API bindings (Search, FastGPT, Universal Summarizer, Enrichment)
Documentation
use thiserror::Error;

/// A `Result` alias where the `Err` case is `kagi_api::Error`.
pub type KagiResult<T> = Result<T, KagiError>;

#[derive(Debug, Error)]
pub enum KagiError {
    /// An error occurred while processing a [crate::KagiConfig].
    #[error("Config error: {0}")]
    ConfigError(config::ConfigError),

    /// An error occurred in connection with performing a [reqwest].
    #[error("Request failed: {0}")]
    ReqwestError(reqwest::Error),

    #[error("HTTP StatusCode: {0}")]
    StatusCodeError(reqwest::StatusCode),

    /// An error performed while handling [reqwest_middleware].
    #[error("Request failed: {0}")]
    ReqwestMiddlewareError(reqwest_middleware::Error),

    /// An error occurred while handling the particular [rvcr] recording middleware.
    #[error("VCRMiddleware failed: {0}")]
    VCRMiddlewareError(String),

    /// An error occurred parsing a [url::Url].
    #[error("URL error: {0}")]
    UrlError(url::ParseError),

    /// An error occurred when formulating an HTTP header.
    #[error("Invalid header: {0}")]
    HeaderError(String),

    /// An error occurred when reading an environment variable.
    #[error("Environment error: {0}")]
    EnvError(&'static str),
}