1#[derive(thiserror::Error, Debug)]
2pub enum Error {
3 #[error("error decoding packet header")]
4 PacketHeader,
5 #[error("no header")]
6 NoHeader,
7 #[error("error decoding packet")]
8 Packet(String),
9 #[error("invalid path")]
10 InvalidPath,
11 #[error("I/O failure")]
12 IO(#[from] std::io::Error),
13}
14
15impl From<nom::Err<nom::error::Error<&[u8]>>> for Error {
16 fn from(inner: nom::Err<nom::error::Error<&[u8]>>) -> Self {
17 Self::Packet(inner.to_string())
18 }
19}
20
21#[cfg(test)]
22impl PartialEq for Error {
23 fn eq(&self, other: &Self) -> bool {
24 match (self, other) {
25 (Self::PacketHeader, Self::PacketHeader) => true,
26 (Self::NoHeader, Self::NoHeader) => true,
27 (Self::Packet(l), Self::Packet(r)) => l == r,
28 (Self::InvalidPath, Self::InvalidPath) => true,
29 (Self::IO(_), Self::IO(_)) => true,
30 (_, _) => false
31 }
32 }
33}
34