drs 0.1.0

Simple and lightweight Discord framework.
Documentation
use std::fmt;

#[derive(Debug)]
pub enum DiscordError {
    Http(ureq::Error),
    Io(std::io::Error),
    Json(serde_json::Error),
    WebSocket(tungstenite::Error),
}

impl std::error::Error for DiscordError {}

impl fmt::Display for DiscordError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        use DiscordError::*;
        let message = match self {
            Http(e) => format!("Http Error: {}", e),
            Io(e) => format!("Io Error: {}", e),
            Json(e) => format!("Json Error: {}", e),
            WebSocket(e) => format!("WebSocket Error: {}", e),
        };

        write!(f, "{}", message)
    }
}

impl From<ureq::Error> for DiscordError {
    fn from(e: ureq::Error) -> Self {
        DiscordError::Http(e)
    }
}

impl From<std::io::Error> for DiscordError {
    fn from(e: std::io::Error) -> Self {
        DiscordError::Io(e)
    }
}

impl From<serde_json::Error> for DiscordError {
    fn from(e: serde_json::Error) -> Self {
        DiscordError::Json(e)
    }
}

impl From<tungstenite::Error> for DiscordError {
    fn from(e: tungstenite::Error) -> Self {
        DiscordError::WebSocket(e)
    }
}