use std::error::Error;
use std::process::ExitCode;
pub trait Runnable {
fn run(&self) -> Result<(), Box<dyn Error>>;
fn main(&self) -> ExitCode {
match self.run() {
Ok(()) => ExitCode::SUCCESS,
Err(error) => {
eprintln!("Error: {error}");
ExitCode::FAILURE
}
}
}
}