Enum libp2p_swarm::SwarmEvent

source ·
#[non_exhaustive]
pub enum SwarmEvent<TBehaviourOutEvent> {
Show 15 variants Behaviour(TBehaviourOutEvent), ConnectionEstablished { peer_id: PeerId, connection_id: ConnectionId, endpoint: ConnectedPoint, num_established: NonZeroU32, concurrent_dial_errors: Option<Vec<(Multiaddr, TransportError<Error>)>>, established_in: Duration, }, ConnectionClosed { peer_id: PeerId, connection_id: ConnectionId, endpoint: ConnectedPoint, num_established: u32, cause: Option<ConnectionError>, }, IncomingConnection { connection_id: ConnectionId, local_addr: Multiaddr, send_back_addr: Multiaddr, }, IncomingConnectionError { connection_id: ConnectionId, local_addr: Multiaddr, send_back_addr: Multiaddr, error: ListenError, }, OutgoingConnectionError { connection_id: ConnectionId, peer_id: Option<PeerId>, error: DialError, }, NewListenAddr { listener_id: ListenerId, address: Multiaddr, }, ExpiredListenAddr { listener_id: ListenerId, address: Multiaddr, }, ListenerClosed { listener_id: ListenerId, addresses: Vec<Multiaddr>, reason: Result<(), Error>, }, ListenerError { listener_id: ListenerId, error: Error, }, Dialing { peer_id: Option<PeerId>, connection_id: ConnectionId, }, NewExternalAddrCandidate { address: Multiaddr, }, ExternalAddrConfirmed { address: Multiaddr, }, ExternalAddrExpired { address: Multiaddr, }, NewExternalAddrOfPeer { peer_id: PeerId, address: Multiaddr, },
}
Expand description

Event generated by the Swarm.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Behaviour(TBehaviourOutEvent)

Event generated by the NetworkBehaviour.

§

ConnectionEstablished

A connection to the given peer has been opened.

Fields

§peer_id: PeerId

Identity of the peer that we have connected to.

§connection_id: ConnectionId

Identifier of the connection.

§endpoint: ConnectedPoint

Endpoint of the connection that has been opened.

§num_established: NonZeroU32

Number of established connections to this peer, including the one that has just been opened.

§concurrent_dial_errors: Option<Vec<(Multiaddr, TransportError<Error>)>>

Some when the new connection is an outgoing connection. Addresses are dialed concurrently. Contains the addresses and errors of dial attempts that failed before the one successful dial.

§established_in: Duration

How long it took to establish this connection

§

ConnectionClosed

A connection with the given peer has been closed, possibly as a result of an error.

Fields

§peer_id: PeerId

Identity of the peer that we have connected to.

§connection_id: ConnectionId

Identifier of the connection.

§endpoint: ConnectedPoint

Endpoint of the connection that has been closed.

§num_established: u32

Number of other remaining connections to this same peer.

§cause: Option<ConnectionError>

Reason for the disconnection, if it was not a successful active close.

§

IncomingConnection

A new connection arrived on a listener and is in the process of protocol negotiation.

A corresponding ConnectionEstablished or IncomingConnectionError event will later be generated for this connection.

Fields

§connection_id: ConnectionId

Identifier of the connection.

§local_addr: Multiaddr

Local connection address. This address has been earlier reported with a NewListenAddr event.

§send_back_addr: Multiaddr

Address used to send back data to the remote.

§

IncomingConnectionError

An error happened on an inbound connection during its initial handshake.

This can include, for example, an error during the handshake of the encryption layer, or the connection unexpectedly closed.

Fields

§connection_id: ConnectionId

Identifier of the connection.

§local_addr: Multiaddr

Local connection address. This address has been earlier reported with a NewListenAddr event.

§send_back_addr: Multiaddr

Address used to send back data to the remote.

§error: ListenError

The error that happened.

§

OutgoingConnectionError

An error happened on an outbound connection.

Fields

§connection_id: ConnectionId

Identifier of the connection.

§peer_id: Option<PeerId>

If known, PeerId of the peer we tried to reach.

§error: DialError

Error that has been encountered.

§

NewListenAddr

One of our listeners has reported a new local listening address.

Fields

§listener_id: ListenerId

The listener that is listening on the new address.

§address: Multiaddr

The new address that is being listened on.

§

ExpiredListenAddr

One of our listeners has reported the expiration of a listening address.

Fields

§listener_id: ListenerId

The listener that is no longer listening on the address.

§address: Multiaddr

The expired address.

§

ListenerClosed

One of the listeners gracefully closed.

Fields

§listener_id: ListenerId

The listener that closed.

§addresses: Vec<Multiaddr>

The addresses that the listener was listening on. These addresses are now considered expired, similar to if a ExpiredListenAddr event has been generated for each of them.

§reason: Result<(), Error>

Reason for the closure. Contains Ok(()) if the stream produced None, or Err if the stream produced an error.

§

ListenerError

One of the listeners reported a non-fatal error.

Fields

§listener_id: ListenerId

The listener that errored.

§error: Error

The listener error.

§

Dialing

A new dialing attempt has been initiated by the NetworkBehaviour implementation.

A ConnectionEstablished event is reported if the dialing attempt succeeds, otherwise a OutgoingConnectionError event is reported.

Fields

§peer_id: Option<PeerId>

Identity of the peer that we are connecting to.

§connection_id: ConnectionId

Identifier of the connection.

§

NewExternalAddrCandidate

We have discovered a new candidate for an external address for us.

Fields

§address: Multiaddr
§

ExternalAddrConfirmed

An external address of the local node was confirmed.

Fields

§address: Multiaddr
§

ExternalAddrExpired

An external address of the local node expired, i.e. is no-longer confirmed.

Fields

§address: Multiaddr
§

NewExternalAddrOfPeer

We have discovered a new address of a peer.

Fields

§peer_id: PeerId
§address: Multiaddr

Implementations§

source§

impl<TBehaviourOutEvent> SwarmEvent<TBehaviourOutEvent>

source

pub fn try_into_behaviour_event(self) -> Result<TBehaviourOutEvent, Self>

Extract the TBehaviourOutEvent from this SwarmEvent in case it is the Behaviour variant, otherwise fail.

Trait Implementations§

source§

impl<TBehaviourOutEvent: Debug> Debug for SwarmEvent<TBehaviourOutEvent>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<TBehaviourOutEvent> Freeze for SwarmEvent<TBehaviourOutEvent>
where TBehaviourOutEvent: Freeze,

§

impl<TBehaviourOutEvent> !RefUnwindSafe for SwarmEvent<TBehaviourOutEvent>

§

impl<TBehaviourOutEvent> Send for SwarmEvent<TBehaviourOutEvent>
where TBehaviourOutEvent: Send,

§

impl<TBehaviourOutEvent> Sync for SwarmEvent<TBehaviourOutEvent>
where TBehaviourOutEvent: Sync,

§

impl<TBehaviourOutEvent> Unpin for SwarmEvent<TBehaviourOutEvent>
where TBehaviourOutEvent: Unpin,

§

impl<TBehaviourOutEvent> !UnwindSafe for SwarmEvent<TBehaviourOutEvent>

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> Conv for T

source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Pipe for T
where T: ?Sized,

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

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

§

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>,

§

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> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more