diff options
Diffstat (limited to 'src/error.rs')
-rw-r--r-- | src/error.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs index d5dd397..916cc51 100644 --- a/src/error.rs +++ b/src/error.rs @@ -139,6 +139,16 @@ impl Error { } } +impl From<Error> for std::io::Error { + fn from(err: Error) -> std::io::Error { + let kind = match err.code { + raw::LIBSSH2_ERROR_EAGAIN => std::io::ErrorKind::WouldBlock, + _ => std::io::ErrorKind::Other, + }; + std::io::Error::new(kind, err.msg) + } +} + impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "[{}] {}", self.code, self.msg) |