[][src]Trait libp2p_swarm::protocols_handler::IntoProtocolsHandler

pub trait IntoProtocolsHandler: Send + 'static {
    type Handler: ProtocolsHandler;
    fn into_handler(
        self,
        remote_peer_id: &PeerId,
        connected_point: &ConnectedPoint
    ) -> Self::Handler;
fn inbound_protocol(
        &self
    ) -> <Self::Handler as ProtocolsHandler>::InboundProtocol; fn select<TProto2>(
        self,
        other: TProto2
    ) -> IntoProtocolsHandlerSelect<Self, TProto2>
    where
        Self: Sized
, { ... }
fn into_node_handler_builder(self) -> NodeHandlerWrapperBuilder<Self>
    where
        Self: Sized
, { ... } }

Prototype for a ProtocolsHandler.

Associated Types

type Handler: ProtocolsHandler

The protocols handler.

Loading content...

Required methods

fn into_handler(
    self,
    remote_peer_id: &PeerId,
    connected_point: &ConnectedPoint
) -> Self::Handler

Builds the protocols handler.

The PeerId is the id of the node the handler is going to handle.

fn inbound_protocol(
    &self
) -> <Self::Handler as ProtocolsHandler>::InboundProtocol

Return the handler's inbound protocol.

Loading content...

Provided methods

fn select<TProto2>(
    self,
    other: TProto2
) -> IntoProtocolsHandlerSelect<Self, TProto2> where
    Self: Sized

Builds an implementation of IntoProtocolsHandler that handles both this protocol and the other one together.

fn into_node_handler_builder(self) -> NodeHandlerWrapperBuilder<Self> where
    Self: Sized

Creates a builder that will allow creating a NodeHandler that handles this protocol exclusively.

Loading content...

Implementors

impl<K, H> IntoProtocolsHandler for IntoMultiHandler<K, H> where
    K: Clone + Eq + Hash + Send + 'static,
    H: IntoProtocolsHandler
[src]

impl<T> IntoProtocolsHandler for T where
    T: ProtocolsHandler
[src]

type Handler = Self

impl<TInner> IntoProtocolsHandler for ToggleIntoProtoHandler<TInner> where
    TInner: IntoProtocolsHandler
[src]

type Handler = ToggleProtoHandler<TInner::Handler>

impl<TProto1, TProto2> IntoProtocolsHandler for IntoProtocolsHandlerSelect<TProto1, TProto2> where
    TProto1: IntoProtocolsHandler,
    TProto2: IntoProtocolsHandler
[src]

type Handler = ProtocolsHandlerSelect<TProto1::Handler, TProto2::Handler>

Loading content...