summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs10
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)