1#[derive(thiserror::Error, Debug)]
2pub enum Error {
3 #[error("I/O error: {0}")]
4 IO(#[from] std::io::Error),
5 #[error("SFTP protocol error: {0}")]
6 Protocol(#[from] sftp_protocol::Error),
7 #[error("Binary encoding error: {0}")]
8 Bincode(#[from] bincode::ErrorKind),
9 #[cfg_attr(feature = "standalone", error("SSH error: {0}"))]
10 #[cfg(feature = "standalone")]
11 Thrussh(#[from] thrussh::Error),
12 #[error("Invalid path")]
13 InvalidPath,
14 #[error("UTF-8 path error")]
15 Utf8Path(#[from] camino::FromPathBufError),
16 #[error("metadata error")]
17 Metadata(#[from] nix::Error)
18}
19
20impl From<Box<bincode::ErrorKind>> for Error {
21 fn from(inner: Box<bincode::ErrorKind>) -> Self {
22 Self::Bincode(*inner)
23 }
24}
25