Enum ConnectionEvent
#[non_exhaustive]pub enum ConnectionEvent<'a, IP, OP, IOI, OOI>where
IP: InboundUpgradeSend,
OP: OutboundUpgradeSend,{
FullyNegotiatedInbound(FullyNegotiatedInbound<IP, IOI>),
FullyNegotiatedOutbound(FullyNegotiatedOutbound<OP, OOI>),
AddressChange(AddressChange<'a>),
DialUpgradeError(DialUpgradeError<OOI, OP>),
ListenUpgradeError(ListenUpgradeError<IOI, IP>),
LocalProtocolsChange(ProtocolsChange<'a>),
RemoteProtocolsChange(ProtocolsChange<'a>),
}
Expand description
Enumeration with the list of the possible stream events
to pass to on_connection_event
.
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.
FullyNegotiatedInbound(FullyNegotiatedInbound<IP, IOI>)
Informs the handler about the output of a successful upgrade on a new inbound substream.
FullyNegotiatedOutbound(FullyNegotiatedOutbound<OP, OOI>)
Informs the handler about the output of a successful upgrade on a new outbound stream.
AddressChange(AddressChange<'a>)
Informs the handler about a change in the address of the remote.
DialUpgradeError(DialUpgradeError<OOI, OP>)
Informs the handler that upgrading an outbound substream to the given protocol has failed.
ListenUpgradeError(ListenUpgradeError<IOI, IP>)
Informs the handler that upgrading an inbound substream to the given protocol has failed.
LocalProtocolsChange(ProtocolsChange<'a>)
The local ConnectionHandler
added or removed support for one or more protocols.
RemoteProtocolsChange(ProtocolsChange<'a>)
The remote ConnectionHandler
now supports a different set of protocols.
Implementations§
§impl<IP, OP, IOI, OOI> ConnectionEvent<'_, IP, OP, IOI, OOI>where
IP: InboundUpgradeSend,
OP: OutboundUpgradeSend,
impl<IP, OP, IOI, OOI> ConnectionEvent<'_, IP, OP, IOI, OOI>where
IP: InboundUpgradeSend,
OP: OutboundUpgradeSend,
pub fn is_outbound(&self) -> bool
pub fn is_outbound(&self) -> bool
Whether the event concerns an outbound stream.
pub fn is_inbound(&self) -> bool
pub fn is_inbound(&self) -> bool
Whether the event concerns an inbound stream.
Trait Implementations§
§impl<IP, OP, IOI, OOI> Debug for ConnectionEvent<'_, IP, OP, IOI, OOI>where
IP: InboundUpgradeSend + Debug,
<IP as InboundUpgradeSend>::Output: Debug,
<IP as InboundUpgradeSend>::Error: Debug,
OP: OutboundUpgradeSend + Debug,
<OP as OutboundUpgradeSend>::Output: Debug,
<OP as OutboundUpgradeSend>::Error: Debug,
IOI: Debug,
OOI: Debug,
impl<IP, OP, IOI, OOI> Debug for ConnectionEvent<'_, IP, OP, IOI, OOI>where
IP: InboundUpgradeSend + Debug,
<IP as InboundUpgradeSend>::Output: Debug,
<IP as InboundUpgradeSend>::Error: Debug,
OP: OutboundUpgradeSend + Debug,
<OP as OutboundUpgradeSend>::Output: Debug,
<OP as OutboundUpgradeSend>::Error: Debug,
IOI: Debug,
OOI: Debug,
Auto Trait Implementations§
impl<'a, IP, OP, IOI, OOI> Freeze for ConnectionEvent<'a, IP, OP, IOI, OOI>where
<IP as InboundUpgradeSend>::Output: Freeze,
IOI: Freeze,
<OP as OutboundUpgradeSend>::Output: Freeze,
OOI: Freeze,
<IP as InboundUpgradeSend>::Error: Freeze,
<OP as OutboundUpgradeSend>::Error: Freeze,
impl<'a, IP, OP, IOI, OOI> !RefUnwindSafe for ConnectionEvent<'a, IP, OP, IOI, OOI>
impl<'a, IP, OP, IOI, OOI> Send for ConnectionEvent<'a, IP, OP, IOI, OOI>
impl<'a, IP, OP, IOI, OOI> Sync for ConnectionEvent<'a, IP, OP, IOI, OOI>where
<IP as InboundUpgradeSend>::Output: Sync,
IOI: Sync,
<OP as OutboundUpgradeSend>::Output: Sync,
OOI: Sync,
<IP as InboundUpgradeSend>::Error: Sync,
<OP as OutboundUpgradeSend>::Error: Sync,
impl<'a, IP, OP, IOI, OOI> Unpin for ConnectionEvent<'a, IP, OP, IOI, OOI>where
<IP as InboundUpgradeSend>::Output: Unpin,
IOI: Unpin,
<OP as OutboundUpgradeSend>::Output: Unpin,
OOI: Unpin,
<IP as InboundUpgradeSend>::Error: Unpin,
<OP as OutboundUpgradeSend>::Error: Unpin,
impl<'a, IP, OP, IOI, OOI> !UnwindSafe for ConnectionEvent<'a, IP, OP, IOI, OOI>
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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