[][src]Trait libp2p_core::protocols_handler::IntoProtocolsHandler

pub trait IntoProtocolsHandler {
    type Handler: ProtocolsHandler;
    fn into_handler(self, remote_peer_id: &PeerId) -> Self::Handler;

    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) -> Self::Handler

Builds the protocols handler.

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

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<T> IntoProtocolsHandler for T where
    T: ProtocolsHandler
[src]

type Handler = Self

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

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

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

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

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

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

Loading content...