Documentation
#[derive(Debug)]
pub enum QQError {
    UnknownError,
    IOError(std::io::Error),
    NetError(String),
}

pub type QQResult<T = ()> = Result<T, QQError>;

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

impl From<toml::de::Error> for QQError {
    fn from(_: toml::de::Error) -> Self {
        Self::UnknownError
    }
}

impl From<url::ParseError> for QQError {
    fn from(_: url::ParseError) -> Self {
        Self::UnknownError
    }
}

impl From<reqwest::Error> for QQError {
    fn from(e: reqwest::Error) -> Self {
        Self::NetError(e.to_string())
    }
}
impl From<tokio_tungstenite::tungstenite::Error> for QQError {
    fn from(e: tokio_tungstenite::tungstenite::Error) -> Self {
        Self::NetError(e.to_string())
    }
}

impl From<serde_json::Error> for QQError {
    fn from(e: serde_json::Error) -> Self {
        Self::NetError(e.to_string())
    }
}