use std::{fmt, io}; #[derive(Debug)] pub enum Error { IO(String), Qsu(String) } impl std::error::Error for Error {} impl apperr::Blessed for Error {} impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { Error::IO(s) => { write!(f, "I/O error; {}", s) } Error::Qsu(s) => { write!(f, "qsu error; {}", s) } } } } impl From for Error { fn from(err: io::Error) -> Self { Error::IO(err.to_string()) } } impl From for Error { fn from(err: qsu::Error) -> Self { Error::Qsu(err.to_string()) } } /* /// Convenience converter used to pass application-defined errors from the /// inner callback back out from the qsu runtime. impl From for qsu::Error { fn from(err: Error) -> qsu::Error { qsu::Error::app(err) } } */ /// Convenience converter for mapping application-specific errors to /// `qsu::AppErr`. impl From for qsu::AppErr { fn from(err: Error) -> qsu::AppErr { qsu::AppErr::new(err) } } // vim: set ft=rust et sw=2 ts=2 sts=2 cinoptions=2 tw=79 :