cooplan_definition_schema_validator/
error.rs

1use std::fmt;
2
3#[derive(Debug, Copy, Clone, PartialEq)]
4pub enum ErrorKind {
5    DeserializationFailure,
6    VersionAttributeMissing,
7    TypeAttributeMissing,
8    InvalidValue,
9    ValueDefinitionMismatch,
10    ValidationNotRegistered,
11}
12
13#[derive(Debug)]
14pub struct Error {
15    pub kind: ErrorKind,
16    pub message: String,
17}
18
19impl Error {
20    pub fn new(kind: ErrorKind, message: impl Into<String>) -> Error {
21        Error { kind, message: message.into() }
22    }
23
24    pub fn kind(&self) -> ErrorKind {
25        self.kind
26    }
27}
28
29impl fmt::Display for Error {
30    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
31        write!(f, "{}", self.message)
32    }
33}