rustutils_runnable/lib.rs
1use std::error::Error;
2use std::process::ExitCode;
3
4pub trait Runnable {
5 /// Run something, can either succeed or fail.
6 fn run(&self) -> Result<(), Box<dyn Error>>;
7
8 /// Run somethin, returning an ExitCode to return to the OS.
9 fn main(&self) -> ExitCode {
10 match self.run() {
11 Ok(()) => ExitCode::SUCCESS,
12 Err(error) => {
13 eprintln!("Error: {error}");
14 ExitCode::FAILURE
15 }
16 }
17 }
18}