use std::fmt::Display;
use std::process;
use colored::*;
pub trait Handle<T> {
fn extract_or_exit(self, message: &str) -> T;
}
impl<T, E: Display> Handle<T> for Result<T, E> {
fn extract_or_exit(self, message: &str) -> T {
match self {
Ok(t) => t,
Err(e) => {
eprintln!("{}: {}: {}", "Err".red(), message, e);
process::exit(1);
}
}
}
}