pub struct Toggle<TBehaviour> { /* private fields */ }
Expand description
Implementation of NetworkBehaviour
that can be either in the disabled or enabled state.
The state can only be chosen at initialization.
Implementations§
Source§impl<TBehaviour> Toggle<TBehaviour>
impl<TBehaviour> Toggle<TBehaviour>
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
Returns true
if Toggle
is enabled and false
if it’s disabled.
Sourcepub fn as_ref(&self) -> Option<&TBehaviour>
pub fn as_ref(&self) -> Option<&TBehaviour>
Returns a reference to the inner NetworkBehaviour
.
Sourcepub fn as_mut(&mut self) -> Option<&mut TBehaviour>
pub fn as_mut(&mut self) -> Option<&mut TBehaviour>
Returns a mutable reference to the inner NetworkBehaviour
.
Trait Implementations§
Source§impl<TBehaviour> NetworkBehaviour for Toggle<TBehaviour>where
TBehaviour: NetworkBehaviour,
impl<TBehaviour> NetworkBehaviour for Toggle<TBehaviour>where
TBehaviour: NetworkBehaviour,
Source§type ProtocolsHandler = ToggleIntoProtoHandler<<TBehaviour as NetworkBehaviour>::ProtocolsHandler>
type ProtocolsHandler = ToggleIntoProtoHandler<<TBehaviour as NetworkBehaviour>::ProtocolsHandler>
Handler for all the protocols the network behaviour supports.
Source§type OutEvent = <TBehaviour as NetworkBehaviour>::OutEvent
type OutEvent = <TBehaviour as NetworkBehaviour>::OutEvent
Event generated by the
NetworkBehaviour
and that the swarm will report back.Source§fn new_handler(&mut self) -> Self::ProtocolsHandler
fn new_handler(&mut self) -> Self::ProtocolsHandler
Creates a new
ProtocolsHandler
for a connection with a peer. Read moreSource§fn addresses_of_peer(&mut self, peer_id: &PeerId) -> Vec<Multiaddr>
fn addresses_of_peer(&mut self, peer_id: &PeerId) -> Vec<Multiaddr>
Addresses that this behaviour is aware of for this specific peer, and that may allow
reaching the peer. Read more
Source§fn inject_connected(&mut self, peer_id: &PeerId)
fn inject_connected(&mut self, peer_id: &PeerId)
Indicate to the behaviour that we connected to the node with the given peer id. Read more
Source§fn inject_disconnected(&mut self, peer_id: &PeerId)
fn inject_disconnected(&mut self, peer_id: &PeerId)
Indicates to the behaviour that we disconnected from the node with the given peer id. Read more
Source§fn inject_connection_established(
&mut self,
peer_id: &PeerId,
connection: &ConnectionId,
endpoint: &ConnectedPoint,
)
fn inject_connection_established( &mut self, peer_id: &PeerId, connection: &ConnectionId, endpoint: &ConnectedPoint, )
Informs the behaviour about a newly established connection to a peer.
Source§fn inject_connection_closed(
&mut self,
peer_id: &PeerId,
connection: &ConnectionId,
endpoint: &ConnectedPoint,
)
fn inject_connection_closed( &mut self, peer_id: &PeerId, connection: &ConnectionId, endpoint: &ConnectedPoint, )
Informs the behaviour about a closed connection to a peer. Read more
Source§fn inject_event(
&mut self,
peer_id: PeerId,
connection: ConnectionId,
event: <<Self::ProtocolsHandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutEvent,
)
fn inject_event( &mut self, peer_id: PeerId, connection: ConnectionId, event: <<Self::ProtocolsHandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutEvent, )
Informs the behaviour about an event generated by the handler dedicated to the peer identified by
peer_id
.
for the behaviour. Read moreSource§fn inject_addr_reach_failure(
&mut self,
peer_id: Option<&PeerId>,
addr: &Multiaddr,
error: &dyn Error,
)
fn inject_addr_reach_failure( &mut self, peer_id: Option<&PeerId>, addr: &Multiaddr, error: &dyn Error, )
Indicates to the behaviour that we tried to reach an address, but failed. Read more
Source§fn inject_dial_failure(&mut self, peer_id: &PeerId)
fn inject_dial_failure(&mut self, peer_id: &PeerId)
Indicates to the behaviour that we tried to dial all the addresses known for a node, but
failed. Read more
Source§fn inject_new_listen_addr(&mut self, addr: &Multiaddr)
fn inject_new_listen_addr(&mut self, addr: &Multiaddr)
Indicates to the behaviour that we have started listening on a new multiaddr.
Source§fn inject_expired_listen_addr(&mut self, addr: &Multiaddr)
fn inject_expired_listen_addr(&mut self, addr: &Multiaddr)
Indicates to the behaviour that a new multiaddr we were listening on has expired,
which means that we are no longer listening in it.
Source§fn inject_new_external_addr(&mut self, addr: &Multiaddr)
fn inject_new_external_addr(&mut self, addr: &Multiaddr)
Indicates to the behaviour that we have discovered a new external address for us.
Source§fn poll(
&mut self,
cx: &mut Context<'_>,
params: &mut impl PollParameters,
) -> Poll<NetworkBehaviourAction<<<Self::ProtocolsHandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InEvent, Self::OutEvent>>
fn poll( &mut self, cx: &mut Context<'_>, params: &mut impl PollParameters, ) -> Poll<NetworkBehaviourAction<<<Self::ProtocolsHandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InEvent, Self::OutEvent>>
Polls for things that swarm should do. Read more
Source§fn inject_address_change(
&mut self,
_: &PeerId,
_: &ConnectionId,
_old: &ConnectedPoint,
_new: &ConnectedPoint,
)
fn inject_address_change( &mut self, _: &PeerId, _: &ConnectionId, _old: &ConnectedPoint, _new: &ConnectedPoint, )
Informs the behaviour that the
ConnectedPoint
of an existing connection has changed.Source§fn inject_listener_error(
&mut self,
_id: ListenerId,
_err: &(dyn Error + 'static),
)
fn inject_listener_error( &mut self, _id: ListenerId, _err: &(dyn Error + 'static), )
A listener experienced an error.
Source§fn inject_listener_closed(
&mut self,
_id: ListenerId,
_reason: Result<(), &Error>,
)
fn inject_listener_closed( &mut self, _id: ListenerId, _reason: Result<(), &Error>, )
A listener closed.
Source§impl<TEvent, TBehaviour> NetworkBehaviourEventProcess<TEvent> for Toggle<TBehaviour>where
TBehaviour: NetworkBehaviourEventProcess<TEvent>,
impl<TEvent, TBehaviour> NetworkBehaviourEventProcess<TEvent> for Toggle<TBehaviour>where
TBehaviour: NetworkBehaviourEventProcess<TEvent>,
Source§fn inject_event(&mut self, event: TEvent)
fn inject_event(&mut self, event: TEvent)
Called when one of the fields of the type you’re deriving
NetworkBehaviour
on generates
an event.Auto Trait Implementations§
impl<TBehaviour> Freeze for Toggle<TBehaviour>where
TBehaviour: Freeze,
impl<TBehaviour> RefUnwindSafe for Toggle<TBehaviour>where
TBehaviour: RefUnwindSafe,
impl<TBehaviour> Send for Toggle<TBehaviour>where
TBehaviour: Send,
impl<TBehaviour> Sync for Toggle<TBehaviour>where
TBehaviour: Sync,
impl<TBehaviour> Unpin for Toggle<TBehaviour>where
TBehaviour: Unpin,
impl<TBehaviour> UnwindSafe for Toggle<TBehaviour>where
TBehaviour: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more