Trait trillium_http::transport::Transport
source · [−]pub trait Transport: Any + AsyncRead + AsyncWrite + Send + Sync + Unpin {
fn as_box_any(self: Box<Self>) -> Box<dyn Any>;
}
Expand description
The interface that the http protocol is communicated over.
Transport represents any type that is AsyncRead + AsyncWrite.
Examples of this include:
- async_std::net::TcpStream
- async_net::TcpStream
- tokio::net::TcpStream when used with async-compat
- async_rustls::TlsStream
- async_tls::server::TlsStream
- async_native_tls::TlsStream
- async_net::unix::UnixStream
- async_std:os::unix::net::UnixStream
- tokio::net::UnixStream with async-compat
Note: Transport is currently designed around AsyncWrite and AsyncRead from the futures crate, which are different from the tokio AsyncRead and AsyncWrite traits. Hopefully this is a temporary situation.
It is currently never necessary to manually implement this trait.
Required methods
fn as_box_any(self: Box<Self>) -> Box<dyn Any>
fn as_box_any(self: Box<Self>) -> Box<dyn Any>
in order to support downcasting from a Box<dyn Transport>
,
Transport requires implementing an as_box_any
function.