use std::fmt;
pub type Result<T> = std::result::Result<T, CBAdvError>;
#[derive(Debug)]
pub enum CBAdvError {
BadParse(String),
BadStatus(String),
BadConnection(String),
NothingToDo(String),
NotFound(String),
Unknown(String),
}
impl fmt::Display for CBAdvError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
CBAdvError::Unknown(value) => write!(f, "unknown error occured: {}", value),
CBAdvError::BadParse(value) => write!(f, "could not parse: {}", value),
CBAdvError::NothingToDo(value) => write!(f, "nothing to do: {}", value),
CBAdvError::NotFound(value) => write!(f, "could not find: {}", value),
CBAdvError::BadStatus(value) => write!(f, "non-zero status occurred: {}", value),
CBAdvError::BadConnection(value) => write!(f, "could not connect: {}", value),
}
}
}
#[macro_export]
macro_rules! debugln {
($fmt:expr $(, $($arg:tt)*)?) => {
println!(concat!("[DEBUG] ", $fmt), $($($arg)*)?);
};
}