From 554aea97727b2450a67987cf2d620992744872dd Mon Sep 17 00:00:00 2001 From: Yoshua Wuyts Date: Wed, 13 Mar 2019 15:54:25 +0100 Subject: [PATCH 1/2] add TcpStream from std conversion Signed-off-by: Yoshua Wuyts --- src/tcp/stream.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/tcp/stream.rs b/src/tcp/stream.rs index 226754d2..a35a7820 100644 --- a/src/tcp/stream.rs +++ b/src/tcp/stream.rs @@ -599,6 +599,15 @@ impl Future for ConnectFuture { } } +impl std::convert::TryFrom for TcpStream { + type Error = io::Error; + + fn try_from(stream: std::net::TcpStream) -> Result { + let tcp = mio::net::TcpStream::from_stream(stream)?; + Ok(TcpStream::new(tcp)) + } +} + #[cfg(unix)] mod sys { use super::TcpStream; From 2a03a6d9329688dda2918b97f283098232d8fdc6 Mon Sep 17 00:00:00 2001 From: Yoshua Wuyts Date: Wed, 13 Mar 2019 16:23:07 +0100 Subject: [PATCH 2/2] add TcpStream from SocketAddr Signed-off-by: Yoshua Wuyts --- src/tcp/stream.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/tcp/stream.rs b/src/tcp/stream.rs index a35a7820..9dae056c 100644 --- a/src/tcp/stream.rs +++ b/src/tcp/stream.rs @@ -608,6 +608,15 @@ impl std::convert::TryFrom for TcpStream { } } +impl std::convert::TryFrom<&std::net::SocketAddr> for TcpStream { + type Error = io::Error; + + fn try_from(addr: &std::net::SocketAddr) -> Result { + let tcp = mio::net::TcpStream::connect(&addr)?; + Ok(TcpStream::new(tcp)) + } +} + #[cfg(unix)] mod sys { use super::TcpStream;