1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-01-09 20:22:27 +00:00
comunicapiv3/src/data/error.rs

39 lines
825 B
Rust

use core::fmt;
use std::error;
use std::error::Error;
use serde::export::Formatter;
/// Simple rust error
///
/// @author Pierre Hubert
/// Simple result type
pub type ResultExecError<E> = Result<E, ExecError>;
pub type ResultBoxError<E = ()> = Result<E, Box<dyn Error>>;
#[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<ExecError> {
Box::new(ExecError(msg.to_string()))
}
pub fn boxed_string(msg: String) -> Box<ExecError> {
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 {}