[][src]Enum libp2p_core::nodes::raw_swarm::Peer

pub enum Peer<'a, TTrans: 'a, TInEvent: 'a, TOutEvent: 'a, THandler: 'a, THandlerErr: 'a> where
    TTrans: Transport
{ Connected(PeerConnected<'a, TInEvent>), PendingConnect(PeerPendingConnect<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>), NotConnected(PeerNotConnected<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>), LocalNode, }

State of a peer in the system.

Variants

Connected(PeerConnected<'a, TInEvent>)

We are connected to this peer.

PendingConnect(PeerPendingConnect<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>)

We are currently attempting to connect to this peer.

NotConnected(PeerNotConnected<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>)

We are not connected to this peer at all.

Note: It is however possible that a pending incoming connection is being negotiated and will connect to this peer, but we don't know it yet.

LocalNode

The requested peer is the local node.

Methods

impl<'a, TTrans, TMuxer, TInEvent, TOutEvent, THandler, THandlerErr> Peer<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr> where
    TTrans: Transport<Output = (PeerId, TMuxer)> + Clone,
    TTrans::Error: Send + 'static,
    TTrans::Dial: Send + 'static,
    TMuxer: StreamMuxer + Send + Sync + 'static,
    TMuxer::OutboundSubstream: Send,
    TMuxer::Substream: Send,
    TInEvent: Send + 'static,
    TOutEvent: Send + 'static,
    THandler: IntoNodeHandler + Send + 'static,
    THandler::Handler: NodeHandler<Substream = Substream<TMuxer>, InEvent = TInEvent, OutEvent = TOutEvent, Error = THandlerErr> + Send + 'static,
    <THandler::Handler as NodeHandler>::OutboundOpenInfo: Send + 'static,
    THandlerErr: Error + Send + 'static, 
[src]

pub fn as_connected(self) -> Option<PeerConnected<'a, TInEvent>>
[src]

If we are connected, returns the PeerConnected.

pub fn as_pending_connect(
    self
) -> Option<PeerPendingConnect<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>>
[src]

If a connection is pending, returns the PeerPendingConnect.

pub fn as_not_connected(
    self
) -> Option<PeerNotConnected<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>>
[src]

If we are not connected, returns the PeerNotConnected.

pub fn or_connect(
    self,
    addr: Multiaddr,
    handler: THandler
) -> Result<PeerPotentialConnect<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>, Self>
[src]

If we're not connected, opens a new connection to this peer using the given multiaddr.

If we reach a peer but the PeerId doesn't correspond to the one we're expecting, then the whole connection is immediately closed.

Returns an error if we are LocalNode.

pub fn or_connect_with<TFn>(
    self,
    addr: TFn,
    handler: THandler
) -> Result<PeerPotentialConnect<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>, Self> where
    TFn: FnOnce(&PeerId) -> Multiaddr
[src]

If we're not connected, calls the function passed as parameter and opens a new connection using the returned address.

If we reach a peer but the PeerId doesn't correspond to the one we're expecting, then the whole connection is immediately closed.

Returns an error if we are LocalNode.

Trait Implementations

impl<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr> Debug for Peer<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr> where
    TTrans: Transport
[src]

Auto Trait Implementations

impl<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr> !Send for Peer<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>

impl<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr> !Sync for Peer<'a, TTrans, TInEvent, TOutEvent, THandler, THandlerErr>

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Same for T

type Output = T

Should always be Self

impl<T> Erased for T