pub trait NetworkConnector {
    type Stream: Into<Box<dyn NetworkStream + Send>>;

    // Required method
    fn connect(
        &self,
        host: &str,
        port: u16,
        scheme: &str
    ) -> Result<Self::Stream, Error>;
}
Expand description

A connector creates a NetworkStream.

Required Associated Types§

source

type Stream: Into<Box<dyn NetworkStream + Send>>

Type of Stream to create

Required Methods§

source

fn connect( &self, host: &str, port: u16, scheme: &str ) -> Result<Self::Stream, Error>

Connect to a remote address.

Implementors§

source§

impl NetworkConnector for HttpConnector

source§

impl<C, S> NetworkConnector for Pool<C>
where C: NetworkConnector<Stream = S>, S: NetworkStream + Send,

source§

impl<F> NetworkConnector for F
where F: Fn(&str, u16, &str) -> Result<TcpStream, Error>,

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))
});
source§

impl<S, C> NetworkConnector for HttpsConnector<S, C>
where S: SslClient, C: NetworkConnector<Stream = HttpStream>,