1use core::fmt;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7#[repr(u16)]
8pub enum CellError {
9 ConnectionRefused = 100,
10 ConnectionReset = 101,
11 Timeout = 102,
12 AccessDenied = 103,
13 CapabilityMissing = 104,
14 IoError = 105,
15 CircuitBreakerOpen = 106,
16
17 InvalidHeader = 200,
18 SerializationFailure = 203,
19 Corruption = 204,
20 ProtocolMismatch = 205,
21}
22
23impl fmt::Display for CellError {
24 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25 match self {
26 CellError::ConnectionRefused => write!(f, "Connection Refused"),
27 CellError::ConnectionReset => write!(f, "Connection Reset"),
28 CellError::Timeout => write!(f, "Timeout"),
29 CellError::AccessDenied => write!(f, "Access Denied"),
30 CellError::CapabilityMissing => write!(f, "Capability Missing"),
31 CellError::IoError => write!(f, "I/O Error"),
32 CellError::CircuitBreakerOpen => write!(f, "Circuit Breaker Open"),
33 CellError::InvalidHeader => write!(f, "Invalid Vesicle Header"),
34 CellError::SerializationFailure => write!(f, "Serialization Failure"),
35 CellError::Corruption => write!(f, "Data Corruption Detected"),
36 CellError::ProtocolMismatch => write!(f, "Protocol Mismatch"),
37 }
38 }
39}
40
41#[cfg(feature = "std")]
43impl std::error::Error for CellError {}