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§
Implementors§
Source§impl NetworkConnector for MockConnector
impl NetworkConnector for MockConnector
type Stream = MockStream
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 TcpStream
s per request
impl<F> NetworkConnector for F
A closure as a connector used to generate TcpStream
s 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 = TcpBuilder::new_v4());
b.bind("127.0.0.1:0"));
b.connect(&(addr, port))
});