pub enum PathEvent {
Opened {
id: PathId,
},
Closed {
id: PathId,
error_code: VarInt,
},
Abandoned {
id: PathId,
path_stats: PathStats,
},
LocallyClosed {
id: PathId,
error: PathError,
},
RemoteStatus {
id: PathId,
status: PathStatus,
},
ObservedAddr {
id: PathId,
addr: SocketAddr,
},
}Expand description
Application events about paths
Variants§
Opened
A new path has been opened
Closed
A path has been closed
Fields
error_code: VarIntError code supplied by the peer See https://www.ietf.org/archive/id/draft-ietf-quic-multipath-14.html#name-error-codes for a list of known errors.
Abandoned
All remaining state for a path has been removed
The PathEvent::Closed would have been emitted for this path earlier.
Fields
path_stats: PathStatsThe final path stats, they are no longer available via Connection::stats
LocallyClosed
Path was closed locally
RemoteStatus
The remote changed the status of the path
The local status is not changed because of this event. It is up to the application to update the local status, which is used for packet scheduling, when the remote changes the status.
ObservedAddr
Received an observation of our external address from the peer.
Fields
id: PathIdPath over which the observed address was reported, PathId::ZERO when multipath is
not negotiated
addr: SocketAddrThe address observed by the remote over this path
Trait Implementations§
impl Eq for PathEvent
impl StructuralPartialEq for PathEvent
Auto Trait Implementations§
impl Freeze for PathEvent
impl RefUnwindSafe for PathEvent
impl Send for PathEvent
impl Sync for PathEvent
impl Unpin for PathEvent
impl UnwindSafe for PathEvent
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.