cooplan_definition_schema_validator/
error.rs1use 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}