use core::fmt; use serde::export::Formatter; use std::error; use std::error::Error; /// Simple rust error /// /// @author Pierre Hubert /// Simple result type pub type ResultExecError = Result; pub type ResultBoxError = Result>; #[derive(Debug, Clone)] pub struct ExecError(pub String); impl ExecError { pub fn new(msg: &str) -> ExecError { ExecError(msg.to_string()) } pub fn boxed_new(msg: &str) -> Box { Box::new(ExecError(msg.to_string())) } pub fn boxed_string(msg: String) -> Box { Box::new(ExecError(msg)) } } impl fmt::Display for ExecError { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { write!(f, "Encountered error: {}", self.0) } } impl error::Error for ExecError {}