caraspace/
errors.rs

1use std::error::Error;
2use std::fmt;
3
4/// Indicate issues with (de)serialization
5#[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