[][src]Trait libp2p::swarm::protocols_handler::IntoProtocolsHandler

pub trait IntoProtocolsHandler {
    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> { ... }
fn into_node_handler_builder(self) -> NodeHandlerWrapperBuilder<Self> { ... } }

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>

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

fn into_node_handler_builder(self) -> NodeHandlerWrapperBuilder<Self>

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

Loading content...

Implementors

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

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

type Handler = ToggleProtoHandler<<TInner as IntoProtocolsHandler>::Handler>

impl<TProto1, TProto2, TSubstream> IntoProtocolsHandler for IntoProtocolsHandlerSelect<TProto1, TProto2> where
    TProto1: IntoProtocolsHandler,
    TProto2: IntoProtocolsHandler,
    TSubstream: AsyncRead + AsyncWrite,
    <TProto1 as IntoProtocolsHandler>::Handler: ProtocolsHandler,
    <TProto2 as IntoProtocolsHandler>::Handler: ProtocolsHandler,
    <<TProto1 as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: InboundUpgrade<TSubstream>,
    <<TProto2 as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: InboundUpgrade<TSubstream>,
    <<TProto1 as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: OutboundUpgrade<TSubstream>,
    <<TProto2 as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: OutboundUpgrade<TSubstream>,
    <<TProto1 as IntoProtocolsHandler>::Handler as ProtocolsHandler>::Substream == TSubstream,
    <<TProto2 as IntoProtocolsHandler>::Handler as ProtocolsHandler>::Substream == TSubstream, 
[src]

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

Loading content...