Skip to main content

ConnectorService

Trait ConnectorService 

pub trait ConnectorService<Input>:
    Send
    + Sync
    + 'static {
    type Connection: Send + ExtensionsRef;

    // Required method
    fn connect(
        &self,
        input: Input,
    ) -> impl Future<Output = Result<EstablishedClientConnection<Self::Connection, Input>, ConnectionError>> + Send;
}
Available on crate feature net only.
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: Send + ExtensionsRef

Connection returned by the ConnectorService

Required Methods§

fn connect( &self, input: Input, ) -> impl Future<Output = Result<EstablishedClientConnection<Self::Connection, Input>, ConnectionError>> + Send

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

Service-specific errors are normalized into ConnectionError at this boundary so connector combinators can reason about connection failures without knowing every concrete error type in the stack.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

§

impl<S, Input, Connection> ConnectorService<Input> for S
where S: Service<Input, Output = EstablishedClientConnection<Connection, Input>>, <S as Service<Input>>::Error: Into<ConnectionError>, Connection: Send + ExtensionsRef,

§

type Connection = Connection