Peer

Enum Peer 

Source
pub enum Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
where TTrans: Transport, THandler: IntoConnectionHandler,
{ Connected(ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>), Dialing(DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>), Disconnected(DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>), Local, }
Expand description

The possible representations of a peer in a Network, as seen by the local node.

Note: In any state there may always be a pending incoming connection attempt from the peer, however, the remote identity of a peer is only known once a connection is fully established.

Variants§

§

Connected(ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>)

At least one established connection exists to the peer.

§

Dialing(DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>)

There is an ongoing dialing (i.e. outgoing connection) attempt to the peer. There may already be other established connections to the peer.

§

Disconnected(DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>)

There exists no established connection to the peer and there is currently no ongoing dialing (i.e. outgoing connection) attempt in progress.

§

Local

The peer represents the local node.

Implementations§

Source§

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

Source

pub fn is_connected(&self) -> bool

Checks whether the peer is currently connected.

Returns true iff Peer::into_connected returns Some.

Source

pub fn is_dialing(&self) -> bool

Checks whether the peer is currently being dialed.

Returns true iff Peer::into_dialing returns Some.

Source

pub fn is_disconnected(&self) -> bool

Checks whether the peer is currently disconnected.

Returns true iff Peer::into_disconnected returns Some.

Source

pub fn dial<I>( self, address: Multiaddr, remaining: I, handler: THandler, ) -> Result<(ConnectionId, DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>), ConnectionLimit>
where I: IntoIterator<Item = Multiaddr>,

Initiates a new dialing attempt to this peer using the given addresses.

The connection ID of the first connection attempt, i.e. to address, is returned, together with a DialingPeer for further use. The remaining addresses are tried in order in subsequent connection attempts in the context of the same dialing attempt, if the connection attempt to the first address fails.

Source

pub fn into_connected( self, ) -> Option<ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>

Converts the peer into a ConnectedPeer, if an established connection exists.

Succeeds if the there is at least one established connection to the peer.

Source

pub fn into_dialing( self, ) -> Option<DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>

Converts the peer into a DialingPeer, if a dialing attempt exists.

Succeeds if the there is at least one pending outgoing connection to the peer.

Source

pub fn into_disconnected( self, ) -> Option<DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>

Converts the peer into a DisconnectedPeer, if neither an established connection nor a dialing attempt exists.

Trait Implementations§

Source§

impl<'a, TTrans, TInEvent, TOutEvent, THandler> Debug for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
where TTrans: Transport, THandler: IntoConnectionHandler,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, TTrans, TInEvent, TOutEvent, THandler> Freeze for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>

§

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

§

impl<'a, TTrans, TInEvent, TOutEvent, THandler> Send for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
where TTrans: Send, THandler: Send, TOutEvent: Send, <TTrans as Transport>::Listener: Send, <TTrans as Transport>::Error: Send, <<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: Send, TInEvent: Send,

§

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

§

impl<'a, TTrans, TInEvent, TOutEvent, THandler> Unpin for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>

§

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

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,