matrix-bridge-teams 0.1.0

A bridge between Matrix and Microsoft Teams written in Rust
use thiserror::Error;

#[derive(Debug, Error)]
pub enum BridgeError {
    #[error("Matrix error: {0}")]
    MatrixError(String),

    #[error("Teams error: {0}")]
    TeamsError(String),

    #[error("Database error: {0}")]
    DatabaseError(String),

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

    #[error("Configuration error: {0}")]
    ConfigError(String),

    #[error("Media error: {0}")]
    MediaError(String),

    #[error("IO error: {0}")]
    IoError(#[from] std::io::Error),

    #[error("HTTP error: {0}")]
    HttpError(String),

    #[error("Serialization error: {0}")]
    SerializationError(#[from] serde_json::Error),

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

impl From<reqwest::Error> for BridgeError {
    fn from(error: reqwest::Error) -> Self {
        BridgeError::HttpError(error.to_string())
    }
}

impl From<anyhow::Error> for BridgeError {
    fn from(error: anyhow::Error) -> Self {
        BridgeError::Unknown(error.to_string())
    }
}

pub type BridgeResult<T> = Result<T, BridgeError>;