Enum s2n_quic::provider::event::events::PacketDropReason

source ·
#[non_exhaustive]
pub enum PacketDropReason<'a> { ConnectionError { path: Path<'a>, }, HandshakeNotComplete { path: Path<'a>, }, VersionMismatch { version: u32, path: Path<'a>, }, ConnectionIdMismatch { packet_cid: &'a [u8], path: Path<'a>, }, UnprotectFailed { space: KeySpace, path: Path<'a>, }, DecryptionFailed { path: Path<'a>, packet_header: PacketHeader, }, DecodingFailed { path: Path<'a>, }, NonEmptyRetryToken { path: Path<'a>, }, RetryDiscarded { reason: RetryDiscardReason<'a>, path: Path<'a>, }, UndersizedInitialPacket { path: Path<'a>, }, InitialConnectionIdInvalidSpace { path: Path<'a>, packet_type: PacketType, }, }

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

ConnectionError

A connection error occurred and is no longer able to process packets.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§

HandshakeNotComplete

The handshake needed to be complete before processing the packet.

To ensure the connection stays secure, short packets can only be processed once the handshake has completed.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§

VersionMismatch

The packet contained a version which did not match the version negotiated during the handshake.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§version: u32
§path: Path<'a>
§

ConnectionIdMismatch

A datagram contained more than one destination connection ID, which is not allowed.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§packet_cid: &'a [u8]
§path: Path<'a>
§

UnprotectFailed

There was a failure when attempting to remove header protection.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§space: KeySpace
§path: Path<'a>
§

DecryptionFailed

There was a failure when attempting to decrypt the packet.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§packet_header: PacketHeader
§

DecodingFailed

Packet decoding failed.

The payload is decoded one packet at a time. If decoding fails then the remaining packets are also discarded.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§

NonEmptyRetryToken

The client received a non-empty retry token.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§

RetryDiscarded

A Retry packet was discarded.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§

UndersizedInitialPacket

The received Initial packet was not transported in a datagram of at least 1200 bytes

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§

InitialConnectionIdInvalidSpace

The destination connection ID in the packet was the initial connection ID but was in a non-initial packet.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: Path<'a>
§packet_type: PacketType

Trait Implementations§

source§

impl<'a> Clone for PacketDropReason<'a>

source§

fn clone(&self) -> PacketDropReason<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for PacketDropReason<'a>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for PacketDropReason<'a>

§

impl<'a> RefUnwindSafe for PacketDropReason<'a>

§

impl<'a> Send for PacketDropReason<'a>

§

impl<'a> Sync for PacketDropReason<'a>

§

impl<'a> Unpin for PacketDropReason<'a>

§

impl<'a> UnwindSafe for PacketDropReason<'a>

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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<T, U> Upcast<T> for U
where T: UpcastFrom<U>,

source§

fn upcast(self) -> T

source§

impl<T, B> UpcastFrom<Counter<T, B>> for T

source§

fn upcast_from(value: Counter<T, B>) -> T

source§

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

source§

fn vzip(self) -> V