use std::fmt;
#[derive(Debug)]
pub struct CliError {
message: String,
code: i32,
}
impl CliError {
pub fn failure(message: impl Into<String>) -> Self {
Self {
message: message.into(),
code: 1,
}
}
pub fn usage(message: impl Into<String>) -> Self {
Self {
message: message.into(),
code: 2,
}
}
pub fn exit_code(&self) -> i32 {
self.code
}
}
impl fmt::Display for CliError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.message)
}
}
impl std::error::Error for CliError {}