async_ssh2_lite/
util.rs

1use std::{
2    io::{Error as IoError, ErrorKind as IoErrorKind},
3    net::SocketAddr,
4};
5
6use ssh2::Error as Ssh2Error;
7
8//
9pub fn ssh2_error_is_would_block(err: &Ssh2Error) -> bool {
10    IoError::from(Ssh2Error::from_errno(err.code())).kind() == IoErrorKind::WouldBlock
11}
12
13//
14#[derive(Debug, Clone)]
15pub enum ConnectInfo {
16    Tcp(SocketAddr),
17    #[cfg(unix)]
18    Unix(Box<std::path::Path>),
19}
20
21impl ConnectInfo {
22    pub fn with_tcp(addr: impl Into<SocketAddr>) -> Self {
23        Self::Tcp(addr.into())
24    }
25
26    #[cfg(unix)]
27    pub fn with_unix(path: impl AsRef<std::path::Path>) -> Self {
28        Self::Unix(path.as_ref().into())
29    }
30}