Struct libp2p_swarm::toggle::ToggleProtoHandler [−][src]
pub struct ToggleProtoHandler<TInner> { /* fields omitted */ }
Expand description
Implementation of ProtocolsHandler
that can be in the disabled state.
Trait Implementations
Custom event that can be produced by the handler and that will be returned to the outside.
The type of errors returned by ProtocolsHandler::poll
.
type InboundProtocol = EitherUpgrade<SendWrapper<TInner::InboundProtocol>, SendWrapper<DeniedUpgrade>>
type InboundProtocol = EitherUpgrade<SendWrapper<TInner::InboundProtocol>, SendWrapper<DeniedUpgrade>>
The inbound upgrade for the protocol(s) used by the handler.
type OutboundProtocol = TInner::OutboundProtocol
type OutboundProtocol = TInner::OutboundProtocol
The outbound upgrade for the protocol(s) used by the handler.
type OutboundOpenInfo = TInner::OutboundOpenInfo
type OutboundOpenInfo = TInner::OutboundOpenInfo
The type of additional information passed to an OutboundSubstreamRequest
.
type InboundOpenInfo = Either<TInner::InboundOpenInfo, ()>
type InboundOpenInfo = Either<TInner::InboundOpenInfo, ()>
The type of additional information returned from listen_protocol
.
The InboundUpgrade
to apply on inbound
substreams to negotiate the desired protocols. Read more
fn inject_fully_negotiated_inbound(
&mut self,
out: <Self::InboundProtocol as InboundUpgradeSend>::Output,
info: Self::InboundOpenInfo
)
fn inject_fully_negotiated_inbound(
&mut self,
out: <Self::InboundProtocol as InboundUpgradeSend>::Output,
info: Self::InboundOpenInfo
)
Injects the output of a successful upgrade on a new inbound substream.
fn inject_fully_negotiated_outbound(
&mut self,
out: <Self::OutboundProtocol as OutboundUpgradeSend>::Output,
info: Self::OutboundOpenInfo
)
fn inject_fully_negotiated_outbound(
&mut self,
out: <Self::OutboundProtocol as OutboundUpgradeSend>::Output,
info: Self::OutboundOpenInfo
)
Injects the output of a successful upgrade on a new outbound substream. Read more
Injects an event coming from the outside in the handler.
Notifies the handler of a change in the address of the remote.
fn inject_dial_upgrade_error(
&mut self,
info: Self::OutboundOpenInfo,
err: ProtocolsHandlerUpgrErr<<Self::OutboundProtocol as OutboundUpgradeSend>::Error>
)
fn inject_dial_upgrade_error(
&mut self,
info: Self::OutboundOpenInfo,
err: ProtocolsHandlerUpgrErr<<Self::OutboundProtocol as OutboundUpgradeSend>::Error>
)
Indicates to the handler that upgrading an outbound substream to the given protocol has failed.
fn inject_listen_upgrade_error(
&mut self,
info: Self::InboundOpenInfo,
err: ProtocolsHandlerUpgrErr<<Self::InboundProtocol as InboundUpgradeSend>::Error>
)
fn inject_listen_upgrade_error(
&mut self,
info: Self::InboundOpenInfo,
err: ProtocolsHandlerUpgrErr<<Self::InboundProtocol as InboundUpgradeSend>::Error>
)
Indicates to the handler that upgrading an inbound substream to the given protocol has failed.
Returns until when the connection should be kept alive. Read more
fn poll(
&mut self,
cx: &mut Context<'_>
) -> Poll<ProtocolsHandlerEvent<Self::OutboundProtocol, Self::OutboundOpenInfo, Self::OutEvent, Self::Error>>
fn poll(
&mut self,
cx: &mut Context<'_>
) -> Poll<ProtocolsHandlerEvent<Self::OutboundProtocol, Self::OutboundOpenInfo, Self::OutEvent, Self::Error>>
Should behave like Stream::poll()
.
fn map_in_event<TNewIn, TMap>(self, map: TMap) -> MapInEvent<Self, TNewIn, TMap> where
Self: Sized,
TMap: Fn(&TNewIn) -> Option<&Self::InEvent>,
fn map_in_event<TNewIn, TMap>(self, map: TMap) -> MapInEvent<Self, TNewIn, TMap> where
Self: Sized,
TMap: Fn(&TNewIn) -> Option<&Self::InEvent>,
Adds a closure that turns the input event into something else.
fn map_out_event<TMap, TNewOut>(self, map: TMap) -> MapOutEvent<Self, TMap> where
Self: Sized,
TMap: FnMut(Self::OutEvent) -> TNewOut,
fn map_out_event<TMap, TNewOut>(self, map: TMap) -> MapOutEvent<Self, TMap> where
Self: Sized,
TMap: FnMut(Self::OutEvent) -> TNewOut,
Adds a closure that turns the output event into something else.
fn select<TProto2>(
self,
other: TProto2
) -> ProtocolsHandlerSelect<Self, TProto2> where
Self: Sized,
fn select<TProto2>(
self,
other: TProto2
) -> ProtocolsHandlerSelect<Self, TProto2> where
Self: Sized,
Creates a new ProtocolsHandler
that selects either this handler or
other
by delegating methods calls appropriately. Read more
Creates a builder that allows creating a NodeHandler
that handles this protocol
exclusively. Read more
Auto Trait Implementations
impl<TInner> RefUnwindSafe for ToggleProtoHandler<TInner> where
TInner: RefUnwindSafe,
impl<TInner> Send for ToggleProtoHandler<TInner> where
TInner: Send,
impl<TInner> Sync for ToggleProtoHandler<TInner> where
TInner: Sync,
impl<TInner> Unpin for ToggleProtoHandler<TInner> where
TInner: Unpin,
impl<TInner> UnwindSafe for ToggleProtoHandler<TInner> where
TInner: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
type Handler = T
type Handler = T
The protocols handler.
Builds the protocols handler. Read more
pub fn inbound_protocol(
&Self
) -> <<T as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol
pub fn inbound_protocol(
&Self
) -> <<T as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol
Return the handler’s inbound protocol.
fn select<TProto2>(
self,
other: TProto2
) -> IntoProtocolsHandlerSelect<Self, TProto2> where
Self: Sized,
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. Read more
Creates a builder that will allow creating a NodeHandler
that handles this protocol
exclusively. Read more