use std::process::ExitCode;
use miette::Report;
#[derive(Debug)]
pub enum Failure {
InvalidInput,
UnprintableModel(Report),
Io(Report),
}
impl Failure {
pub fn eprint(&self) {
let (Self::UnprintableModel(report) | Self::Io(report)) = self else {
return;
};
eprintln!("{report:?}");
}
pub fn exit_code(&self) -> ExitCode {
match self {
Self::InvalidInput => ExitCode::from(1),
Self::UnprintableModel(_report) => ExitCode::from(1),
Self::Io(_report) => ExitCode::from(3),
}
}
}