sftp_protocol/
error.rs

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