Skip to main content

TcpStreamConnectorFactory

Trait TcpStreamConnectorFactory 

pub trait TcpStreamConnectorFactory:
    Send
    + Sync
    + 'static {
    type Connector: TcpStreamConnector;
    type Error;

    // Required method
    fn make_connector(
        &self,
    ) -> impl Future<Output = Result<CreatedTcpStreamConnector<Self::Connector>, Self::Error>> + Send;
}
Available on crate features http and tcp only.
Expand description

Factory to create a TcpStreamConnector. This is used by the TCP stream service to create a TcpStream.

In the most simplest case you use a TcpStreamConnectorCloneFactory to use a Cloneable TcpStreamConnectorCloneFactory, but in more advanced cases you can use variants of TcpStreamConnector specific to the given contexts.

Examples why you might variants:

  • you might have specific needs for your sockets (e.g. bind to a specific interface) that you do not have for all your egress traffic. rama_net::socket can help you with this;
  • it is possible that you have specific filter or firewall needs for some of your egress traffic but not all of it.

Required Associated Types§

type Connector: TcpStreamConnector

TcpStreamConnector created by this TcpStreamConnectorFactory

type Error

Error returned in case TcpStreamConnectorFactory was not able to create a TcpStreamConnector.

Required Methods§

fn make_connector( &self, ) -> impl Future<Output = Result<CreatedTcpStreamConnector<Self::Connector>, Self::Error>> + Send

Try to create a TcpStreamConnector, and return an error or otherwise.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl TcpStreamConnectorFactory for ()

Implementors§

§

impl<A, B, C, D, E, F, G, H, I> TcpStreamConnectorFactory for Either9<A, B, C, D, E, F, G, H, I>
where A: TcpStreamConnectorFactory, <A as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<A as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <A as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, B: TcpStreamConnectorFactory, <B as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<B as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <B as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, C: TcpStreamConnectorFactory, <C as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<C as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <C as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, D: TcpStreamConnectorFactory, <D as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<D as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <D as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, E: TcpStreamConnectorFactory, <E as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<E as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <E as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, F: TcpStreamConnectorFactory, <F as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<F as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <F as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, G: TcpStreamConnectorFactory, <G as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<G as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <G as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, H: TcpStreamConnectorFactory, <H as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<H as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <H as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, I: TcpStreamConnectorFactory, <I as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<I as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <I as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>,

§

impl<A, B, C, D, E, F, G, H> TcpStreamConnectorFactory for Either8<A, B, C, D, E, F, G, H>
where A: TcpStreamConnectorFactory, <A as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<A as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <A as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, B: TcpStreamConnectorFactory, <B as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<B as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <B as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, C: TcpStreamConnectorFactory, <C as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<C as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <C as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, D: TcpStreamConnectorFactory, <D as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<D as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <D as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, E: TcpStreamConnectorFactory, <E as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<E as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <E as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, F: TcpStreamConnectorFactory, <F as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<F as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <F as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, G: TcpStreamConnectorFactory, <G as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<G as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <G as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, H: TcpStreamConnectorFactory, <H as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<H as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <H as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>,

§

impl<A, B, C, D, E, F, G> TcpStreamConnectorFactory for Either7<A, B, C, D, E, F, G>
where A: TcpStreamConnectorFactory, <A as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<A as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <A as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, B: TcpStreamConnectorFactory, <B as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<B as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <B as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, C: TcpStreamConnectorFactory, <C as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<C as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <C as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, D: TcpStreamConnectorFactory, <D as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<D as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <D as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, E: TcpStreamConnectorFactory, <E as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<E as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <E as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, F: TcpStreamConnectorFactory, <F as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<F as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <F as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, G: TcpStreamConnectorFactory, <G as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<G as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <G as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>,

§

impl<A, B, C, D, E, F> TcpStreamConnectorFactory for Either6<A, B, C, D, E, F>
where A: TcpStreamConnectorFactory, <A as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<A as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <A as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, B: TcpStreamConnectorFactory, <B as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<B as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <B as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, C: TcpStreamConnectorFactory, <C as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<C as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <C as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, D: TcpStreamConnectorFactory, <D as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<D as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <D as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, E: TcpStreamConnectorFactory, <E as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<E as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <E as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>, F: TcpStreamConnectorFactory, <F as TcpStreamConnectorFactory>::Connector: TcpStreamConnector, <<F as TcpStreamConnectorFactory>::Connector as TcpStreamConnector>::Error: Into<Box<dyn Error + Send + Sync>>, <F as TcpStreamConnectorFactory>::Error: Into<Box<dyn Error + Send + Sync>>,

§

impl<A, B, C, D, E> TcpStreamConnectorFactory for Either5<A, B, C, D, E>

§

impl<A, B, C, D> TcpStreamConnectorFactory for Either4<A, B, C, D>

§

impl<A, B, C> TcpStreamConnectorFactory for Either3<A, B, C>

§

impl<A, B> TcpStreamConnectorFactory for Either<A, B>

§

impl<C> TcpStreamConnectorFactory for TcpStreamConnectorCloneFactory<C>

§

impl<F> TcpStreamConnectorFactory for Arc<F>