1use std::{error::Error, fmt};
6
7use crate::core::errors;
8
9#[derive(Clone, Debug)]
11pub enum ErrorEnum {
12 Error,
14 Invalid,
16 NotFound,
18}
19
20impl fmt::Display for ErrorEnum {
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22 fmt::Debug::fmt(self, f)
23 }
24}
25
26#[derive(Clone, Debug)]
29pub enum DmError {
30 Dm(ErrorEnum, String),
32 Core(errors::Error),
34}
35
36pub type DmResult<T> = Result<T, DmError>;
38
39impl From<errors::Error> for DmError {
40 fn from(err: errors::Error) -> DmError {
41 DmError::Core(err)
42 }
43}
44
45impl fmt::Display for DmError {
46 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
47 match *self {
48 DmError::Core(ref err) => write!(f, "DM Core error: {err}"),
49 DmError::Dm(ref err, ref msg) => write!(f, "DM error: {err}: {msg}"),
50 }
51 }
52}
53
54impl Error for DmError {}