use std::fmt::Debug; use std::process::exit; use std::io::{self, Write}; use std::env::current_exe; use std::path::PathBuf; #[inline] pub fn result_override(r: Result, msg: String) -> Result { return match r { Ok(t) => Ok(t), Err(_) => Err(msg), }; } #[inline] pub fn result_prefix(r: Result, prefix: String) -> Result { return match r { Ok(t) => Ok(t), Err(e) => Err(format!("{}: {:?}", prefix, e)), }; } pub fn ok_or_exit(res: Result) -> T { return match res { Ok(k) => k, Err(err) => { writeln!(io::stderr(), "Error: {:?}", err).unwrap(); exit(1); } }; } #[inline] pub fn get_exe_dir() -> PathBuf { return current_exe() .expect("Failed to get exe location") .parent() .expect("Failed to get exe directory") .to_path_buf(); }