Trait trillium_http::transport::Transport
source · pub trait Transport: Any + AsyncRead + AsyncWrite + Unpin + Send + Sync + 'static {
// Provided methods
fn set_linger(&mut self, linger: Option<Duration>) -> Result<()> { ... }
fn set_nodelay(&mut self, nodelay: bool) -> Result<()> { ... }
fn set_ip_ttl(&mut self, ttl: u32) -> Result<()> { ... }
fn peer_addr(&self) -> Result<Option<SocketAddr>> { ... }
}
Expand description
The interface that the http protocol is communicated over.
This trait supports several common interfaces supported by tcp streams, but also can be implemented for other stream types. All trait functions are currently optional.
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.
Provided Methods§
sourcefn set_linger(&mut self, linger: Option<Duration>) -> Result<()>
fn set_linger(&mut self, linger: Option<Duration>) -> Result<()>
Sets the linger duration of this transport by setting the SO_LINGER
option
See std::net::TcpStream::set_linger
Optional to implement.
Errors
Return an error if this transport supports setting linger and attempting to do so is unsuccessful.
sourcefn set_nodelay(&mut self, nodelay: bool) -> Result<()>
fn set_nodelay(&mut self, nodelay: bool) -> Result<()>
Sets the value of the TCP_NODELAY
option on this transport.
See std::net::TcpStream::set_nodelay
.
Optional to implement.
Errors
Return an error if this transport supports setting nodelay and attempting to do so is unsuccessful.
sourcefn set_ip_ttl(&mut self, ttl: u32) -> Result<()>
fn set_ip_ttl(&mut self, ttl: u32) -> Result<()>
Sets the value for the IP_TTL
option on this transport.
See std::net::TcpStream::set_ttl
Optional to implement
Errors
Return an error if this transport supports setting ttl and attempting to do so is unsuccessful.
sourcefn peer_addr(&self) -> Result<Option<SocketAddr>>
fn peer_addr(&self) -> Result<Option<SocketAddr>>
Returns the socket address of the remote peer of this transport.
Errors
Return an error if this transport supports retrieving the remote peer but attempting to do so is unsuccessful.
Trait Implementations§
source§impl Transport for Box<dyn Transport>
impl Transport for Box<dyn Transport>
source§fn set_linger(&mut self, linger: Option<Duration>) -> Result<()>
fn set_linger(&mut self, linger: Option<Duration>) -> Result<()>
SO_LINGER
option Read moresource§fn set_nodelay(&mut self, nodelay: bool) -> Result<()>
fn set_nodelay(&mut self, nodelay: bool) -> Result<()>
TCP_NODELAY
option on this transport. Read more