Trait rama::net::client::ConnectorService

pub trait ConnectorService<State, Request>:
    Send
    + Sync
    + 'static {
    type Connection;
    type Error: Into<Box<dyn Error + Sync + Send>>;

    // Required method
    fn connect(
        &self,
        ctx: Context<State>,
        req: Request,
    ) -> impl Future<Output = Result<EstablishedClientConnection<Self::Connection, State, Request>, Self::Error>> + Send;
}
Expand description

Glue trait that is used as the Connector trait bound for clients establishing a connection on one layer or another.

Can also be manually implemented as an alternative Service trait, but from a Rama POV it is mostly used for UX trait bounds.

Required Associated Types§

type Connection

Connection returned by the ConnectorService

type Error: Into<Box<dyn Error + Sync + Send>>

Error returned in case of connection / setup failure

Required Methods§

fn connect( &self, ctx: Context<State>, req: Request, ) -> impl Future<Output = Result<EstablishedClientConnection<Self::Connection, State, Request>, Self::Error>> + Send

Establish a connection, which often involves some kind of handshake, or connection revival.

Object Safety§

This trait is not object safe.

Implementors§

§

impl<S, State, Request, Connection> ConnectorService<State, Request> for S
where S: Service<State, Request, Response = EstablishedClientConnection<Connection, State, Request>>, <S as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,

§

type Connection = Connection

§

type Error = <S as Service<State, Request>>::Error