slack-rust 0.0.1-alpha

Slack API Client
Documentation
use std::fmt;

#[derive(Debug)]
pub enum Error {
    InvalidInputError,
    IOError(std::io::Error),
    NotFoundDomain,
    NotFoundStream,
    SerdeJsonError(serde_json::Error),
    SocketModeOpenConnectionError,
    SurfError(surf::Error),
    UrlParseError(url::ParseError),
    WebSocketError(async_tungstenite::tungstenite::Error),
}

impl From<std::io::Error> for Error {
    fn from(err: std::io::Error) -> Error {
        Error::IOError(err)
    }
}

impl From<serde_json::Error> for Error {
    fn from(err: serde_json::Error) -> Error {
        Error::SerdeJsonError(err)
    }
}

impl From<surf::Error> for Error {
    fn from(err: surf::Error) -> Error {
        Error::SurfError(err)
    }
}

impl From<url::ParseError> for Error {
    fn from(err: url::ParseError) -> Error {
        Error::UrlParseError(err)
    }
}

impl From<async_tungstenite::tungstenite::Error> for Error {
    fn from(err: async_tungstenite::tungstenite::error::Error) -> Error {
        Error::WebSocketError(err)
    }
}

impl fmt::Display for Error {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match *self {
            Error::InvalidInputError => write!(f, "Invalid Input Error"),
            Error::IOError(ref e) => write!(f, "IO Error: {}", e),
            Error::NotFoundDomain => write!(f, "NotFound Domain Error"),
            Error::NotFoundStream => write!(f, "NotFound Stream Error"),
            Error::SerdeJsonError(ref e) => write!(f, "Serde Json Error: {}", e),
            Error::SocketModeOpenConnectionError => write!(f, "SocketMode OpenConnection Error"),
            Error::SurfError(ref e) => write!(f, "Surf Error: {}", e),
            Error::UrlParseError(ref e) => write!(f, "Url Parse Error: {}", e),
            Error::WebSocketError(ref e) => write!(f, "WebSocket Error: {:?}", e),
        }
    }
}