orientdb-client 0.2.1

A Rust client for OrientDB™
Documentation
use async_std::io;

#[derive(Debug)]
pub enum C3p0Error {
    IO(io::Error),
    User(Box<dyn std::error::Error + Send>),
}

impl From<io::Error> for C3p0Error {
    fn from(e: io::Error) -> Self {
        C3p0Error::IO(e)
    }
}

impl std::error::Error for C3p0Error {
    fn description(&self) -> &str {
        match *self {
            C3p0Error::IO(ref err) => err.description(),
            C3p0Error::User(ref err) => err.description(),
        }
    }

    fn cause(&self) -> Option<&dyn std::error::Error> {
        match *self {
            C3p0Error::IO(ref err) => Some(err),
            C3p0Error::User(ref err) => Some(err.as_ref()),
        }
    }
}

impl std::fmt::Display for C3p0Error {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match *self {
            C3p0Error::IO(ref err) => write!(f, "IO error: {}", err),
            C3p0Error::User(ref err) => write!(f, "User error: {}", err.description()),
        }
    }
}