pub trait NetworkConnector {
type Stream: Into<Box<dyn NetworkStream + Send>>;
// Required method
fn connect(
&self,
host: &str,
port: u16,
scheme: &str,
) -> Result<Self::Stream>;
}Expand description
A connector creates a NetworkStream.
Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
Source§impl NetworkConnector for HttpConnector
impl NetworkConnector for HttpConnector
type Stream = HttpStream
Source§impl<C: NetworkConnector<Stream = S>, S: NetworkStream + Send> NetworkConnector for Pool<C>
impl<C: NetworkConnector<Stream = S>, S: NetworkStream + Send> NetworkConnector for Pool<C>
type Stream = PooledStream<S>
Source§impl<F> NetworkConnector for F
A closure as a connector used to generate TcpStreams per request
impl<F> NetworkConnector for F
A closure as a connector used to generate TcpStreams per request
§Example
Basic example:
Client::with_connector(|addr: &str, port: u16, scheme: &str| {
TcpStream::connect(&(addr, port))
});Example using TcpBuilder from the net2 crate if you want to configure your source socket:
Client::with_connector(|addr: &str, port: u16, scheme: &str| {
let b = try!(TcpBuilder::new_v4());
try!(b.bind("127.0.0.1:0"));
b.connect(&(addr, port))
});