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}