1use std::error::Error;
2use std::fmt;
3
4#[derive(Debug, Copy, Clone)]
6#[repr(u8)]
7pub enum CRSerializationError {
8 TailInvalid,
9 HeadInvalid,
10 TrackerDelimiterInvalid,
11 TofDelimiterInvalid,
12 StreamTooShort,
13 StreamTooLong,
14 ValueNotFound,
15 EventFragment,
16 UnknownPayload,
17 IncorrectPacketType,
18 IncorrectScleriteType,
19 WrongByteSize,
20 JsonDecodingError,
21 TomlDecodingError,
22 Disconnected,
23 UnknownError,
24 ObjectNotFound
25}
26
27impl CRSerializationError {
28 pub fn to_string(&self) -> String {
29 match self {
30 CRSerializationError::TailInvalid => {return String::from("TailInvalid");},
31 CRSerializationError::HeadInvalid => {return String::from("HeadInvalid");},
32 CRSerializationError::TrackerDelimiterInvalid => {return String::from("TrackerDelimiterInvalid");},
33 CRSerializationError::TofDelimiterInvalid => {return String::from("TofDelimiterInvalid");},
34 CRSerializationError::StreamTooShort => {return String::from("StreamTooShort");},
35 CRSerializationError::StreamTooLong => {return String::from("StreamTooLong");},
36 CRSerializationError::ValueNotFound => {return String::from("ValueNotFound");},
37 CRSerializationError::EventFragment => {return String::from("EventFragment");}
38 CRSerializationError::UnknownPayload => {return String::from("UnknownPayload");},
39 CRSerializationError::IncorrectPacketType => {return String::from("IncorrectPacketType");},
40 CRSerializationError::IncorrectScleriteType => {return String::from("IncorrectScleriteType");},
41 CRSerializationError::WrongByteSize => {return String::from("WrongByteSize");},
42 CRSerializationError::JsonDecodingError => {return String::from("JsonDecodingError");},
43 CRSerializationError::TomlDecodingError => {return String::from("TomlDecodingError");},
44 CRSerializationError::Disconnected => {return String::from("Disconnected");}
45 CRSerializationError::UnknownError => {return String::from("UnknownError");}
46 CRSerializationError::ObjectNotFound => {return String::from("ObjectNotFound");}
47 }
48 }
49}
50
51impl fmt::Display for CRSerializationError {
52 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
53 let repr = self.to_string();
54 write!(f, "<Serialization Error : {}>", repr)
55 }
56}
57
58impl Error for CRSerializationError {
59}
60