service_utils_rs 0.3.14

A brief description of your crate
Documentation
use thiserror::Error;

#[derive(Error, Debug)]
pub enum Error {
    #[error("io error: {0}")]
    IoError(#[from] std::io::Error),

    #[error("auth error: {0}")]
    AuthError(String),

    #[cfg(feature = "jwt")]
    #[error("JWT error: {0}")]
    JwtError(#[from] jsonwebtoken::errors::Error),

    #[cfg(feature = "websocket")]
    #[error("websocket error: {0}")]
    WsError(#[from] tokio_tungstenite::tungstenite::Error),

    #[cfg(feature = "http")]
    #[error("request error: {0}")]
    RequestError(#[from] reqwest::Error),

    #[error("url error: {0}")]
    UrlError(#[from] url::ParseError),

    #[cfg(feature = "db")]
    #[error("db error: {0}")]
    DbError(#[from] surrealdb::Error),

    #[error("config error: {0}")]
    ConfigError(#[from] config::ConfigError),

    #[error("{message:} ({line:}, {column})")]
    CustomError {
        message: String,
        line: u32,
        column: u32,
    },

    #[error("error message: {0}")]
    ErrorMessage(String),

    #[error("error code: {0}")]
    ErrorCode(u16),

    #[error("system error: {0}")]
    SystemError(String),
}

pub type Result<T, E = Error> = core::result::Result<T, E>;