rotor_stream/
trait_impls.rs1use std::io;
2use std::any::Any;
3use std::net::SocketAddr;
4#[cfg(unix)]
5use std::path::PathBuf;
6
7use rotor::mio::Evented;
8use rotor::mio::tcp;
9#[cfg(unix)]
10use rotor::mio::unix;
11
12use {StreamSocket, ActiveStream, SocketError};
13
14impl<T> StreamSocket for T
15 where T: io::Read, T: io::Write, T: Evented, T:SocketError, T:Any
16{}
17
18impl ActiveStream for tcp::TcpStream {
19 type Address = SocketAddr;
20 fn connect(addr: &SocketAddr) -> io::Result<Self> {
21 tcp::TcpStream::connect(addr)
22 }
23}
24
25#[cfg(unix)]
26impl ActiveStream for unix::UnixStream {
27 type Address = PathBuf;
28 fn connect(addr: &PathBuf) -> io::Result<Self> {
29 unix::UnixStream::connect(addr)
30 }
31}
32
33impl SocketError for tcp::TcpStream {
34 fn take_socket_error(&self) -> io::Result<()> {
35 tcp::TcpStream::take_socket_error(self)
36 }
37}
38
39#[cfg(unix)]
40impl SocketError for unix::UnixStream {
41 fn take_socket_error(&self) -> io::Result<()> {
42 Ok(())
43 }
44}