Trait s2n_quic::provider::event::Subscriber

source ·
pub trait Subscriber: 'static + Send {
    type ConnectionContext: 'static + Send;

Show 63 methods // Required method fn create_connection_context( &mut self, meta: &ConnectionMeta, info: &ConnectionInfo ) -> Self::ConnectionContext; // Provided methods fn supervisor_timeout( &mut self, conn_context: &mut Self::ConnectionContext, meta: &ConnectionMeta, context: &Context<'_> ) -> Option<Duration> { ... } fn on_supervisor_timeout( &mut self, conn_context: &mut Self::ConnectionContext, meta: &ConnectionMeta, context: &Context<'_> ) -> Outcome { ... } fn on_application_protocol_information( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ApplicationProtocolInformation<'_> ) { ... } fn on_server_name_information( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ServerNameInformation<'_> ) { ... } fn on_packet_skipped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketSkipped ) { ... } fn on_packet_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketSent ) { ... } fn on_packet_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketReceived ) { ... } fn on_active_path_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ActivePathUpdated<'_> ) { ... } fn on_path_created( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PathCreated<'_> ) { ... } fn on_frame_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &FrameSent ) { ... } fn on_frame_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &FrameReceived<'_> ) { ... } fn on_packet_lost( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketLost<'_> ) { ... } fn on_recovery_metrics( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &RecoveryMetrics<'_> ) { ... } fn on_congestion( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &Congestion<'_> ) { ... } fn on_ack_processed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &AckProcessed<'_> ) { ... } fn on_rx_ack_range_dropped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &RxAckRangeDropped<'_> ) { ... } fn on_ack_range_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &AckRangeReceived<'_> ) { ... } fn on_ack_range_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &AckRangeSent ) { ... } fn on_packet_dropped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketDropped<'_> ) { ... } fn on_key_update( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &KeyUpdate ) { ... } fn on_key_space_discarded( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &KeySpaceDiscarded ) { ... } fn on_connection_started( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionStarted<'_> ) { ... } fn on_connection_closed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionClosed ) { ... } fn on_duplicate_packet( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DuplicatePacket<'_> ) { ... } fn on_transport_parameters_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TransportParametersReceived<'_> ) { ... } fn on_datagram_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DatagramSent ) { ... } fn on_datagram_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DatagramReceived ) { ... } fn on_datagram_dropped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DatagramDropped ) { ... } fn on_connection_id_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionIdUpdated<'_> ) { ... } fn on_ecn_state_changed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &EcnStateChanged<'_> ) { ... } fn on_connection_migration_denied( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionMigrationDenied ) { ... } fn on_handshake_status_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &HandshakeStatusUpdated ) { ... } fn on_tls_exporter_ready( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TlsExporterReady<'_> ) { ... } fn on_path_challenge_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PathChallengeUpdated<'_> ) { ... } fn on_tls_client_hello( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TlsClientHello<'_> ) { ... } fn on_tls_server_hello( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TlsServerHello<'_> ) { ... } fn on_rx_stream_progress( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &RxStreamProgress ) { ... } fn on_tx_stream_progress( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TxStreamProgress ) { ... } fn on_keep_alive_timer_expired( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &KeepAliveTimerExpired ) { ... } fn on_mtu_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &MtuUpdated ) { ... } fn on_slow_start_exited( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &SlowStartExited ) { ... } fn on_delivery_rate_sampled( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DeliveryRateSampled ) { ... } fn on_pacing_rate_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacingRateUpdated ) { ... } fn on_bbr_state_changed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &BbrStateChanged ) { ... } fn on_version_information( &mut self, meta: &EndpointMeta, event: &VersionInformation<'_> ) { ... } fn on_endpoint_packet_sent( &mut self, meta: &EndpointMeta, event: &EndpointPacketSent ) { ... } fn on_endpoint_packet_received( &mut self, meta: &EndpointMeta, event: &EndpointPacketReceived ) { ... } fn on_endpoint_datagram_sent( &mut self, meta: &EndpointMeta, event: &EndpointDatagramSent ) { ... } fn on_endpoint_datagram_received( &mut self, meta: &EndpointMeta, event: &EndpointDatagramReceived ) { ... } fn on_endpoint_datagram_dropped( &mut self, meta: &EndpointMeta, event: &EndpointDatagramDropped ) { ... } fn on_endpoint_connection_attempt_failed( &mut self, meta: &EndpointMeta, event: &EndpointConnectionAttemptFailed ) { ... } fn on_platform_tx(&mut self, meta: &EndpointMeta, event: &PlatformTx) { ... } fn on_platform_tx_error( &mut self, meta: &EndpointMeta, event: &PlatformTxError ) { ... } fn on_platform_rx(&mut self, meta: &EndpointMeta, event: &PlatformRx) { ... } fn on_platform_rx_error( &mut self, meta: &EndpointMeta, event: &PlatformRxError ) { ... } fn on_platform_feature_configured( &mut self, meta: &EndpointMeta, event: &PlatformFeatureConfigured ) { ... } fn on_platform_event_loop_wakeup( &mut self, meta: &EndpointMeta, event: &PlatformEventLoopWakeup ) { ... } fn on_platform_event_loop_sleep( &mut self, meta: &EndpointMeta, event: &PlatformEventLoopSleep ) { ... } fn on_event<M, E>(&mut self, meta: &M, event: &E) where M: Meta, E: Event { ... } fn on_connection_event<E>( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &E ) where E: Event { ... } fn query( context: &Self::ConnectionContext, query: &mut dyn Query ) -> ControlFlow { ... } fn query_mut( context: &mut Self::ConnectionContext, query: &mut dyn QueryMut ) -> ControlFlow { ... }
}
Expand description

Allows for events to be subscribed to

Required Associated Types§

source

type ConnectionContext: 'static + Send

An application provided type associated with each connection.

The context provides a mechanism for applications to provide a custom type and update it on each event, e.g. computing statistics. Each event invocation (e.g. Subscriber::on_packet_sent) also provides mutable access to the context &mut ConnectionContext and allows for updating the context.

use s2n_quic::provider::event::{
    ConnectionInfo, ConnectionMeta, Subscriber, events::PacketSent
};

pub struct MyEventSubscriber;

pub struct MyEventContext {
    packet_sent: u64,
}

impl Subscriber for MyEventSubscriber {
    type ConnectionContext = MyEventContext;

    fn create_connection_context(
        &mut self, _meta: &ConnectionMeta,
        _info: &ConnectionInfo,
    ) -> Self::ConnectionContext {
        MyEventContext { packet_sent: 0 }
    }

    fn on_packet_sent(
        &mut self,
        context: &mut Self::ConnectionContext,
        _meta: &ConnectionMeta,
        _event: &PacketSent,
    ) {
        context.packet_sent += 1;
    }
}

Required Methods§

source

fn create_connection_context( &mut self, meta: &ConnectionMeta, info: &ConnectionInfo ) -> Self::ConnectionContext

Creates a context to be passed to each connection-related event

Provided Methods§

source

fn supervisor_timeout( &mut self, conn_context: &mut Self::ConnectionContext, meta: &ConnectionMeta, context: &Context<'_> ) -> Option<Duration>

The period at which on_supervisor_timeout is called

If multiple event::Subscribers are composed together, the minimum supervisor_timeout across all event::Subscribers will be used.

If the supervisor_timeout() is None across all event::Subscribers, connection supervision will cease for the remaining lifetime of the connection and on_supervisor_timeout will no longer be called.

It is recommended to avoid setting this value less than ~100ms, as short durations may lead to higher CPU utilization.

source

fn on_supervisor_timeout( &mut self, conn_context: &mut Self::ConnectionContext, meta: &ConnectionMeta, context: &Context<'_> ) -> Outcome

Called for each supervisor_timeout to determine any action to take on the connection based on the supervisor::Outcome

If multiple event::Subscribers are composed together, the minimum supervisor_timeout across all event::Subscribers will be used, and thus on_supervisor_timeout may be called earlier than the supervisor_timeout for a given event::Subscriber implementation.

source

fn on_application_protocol_information( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ApplicationProtocolInformation<'_> )

Called when the ApplicationProtocolInformation event is triggered

source

fn on_server_name_information( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ServerNameInformation<'_> )

Called when the ServerNameInformation event is triggered

source

fn on_packet_skipped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketSkipped )

Called when the PacketSkipped event is triggered

source

fn on_packet_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketSent )

Called when the PacketSent event is triggered

source

fn on_packet_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketReceived )

Called when the PacketReceived event is triggered

source

fn on_active_path_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ActivePathUpdated<'_> )

Called when the ActivePathUpdated event is triggered

source

fn on_path_created( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PathCreated<'_> )

Called when the PathCreated event is triggered

source

fn on_frame_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &FrameSent )

Called when the FrameSent event is triggered

source

fn on_frame_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &FrameReceived<'_> )

Called when the FrameReceived event is triggered

source

fn on_packet_lost( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketLost<'_> )

Called when the PacketLost event is triggered

source

fn on_recovery_metrics( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &RecoveryMetrics<'_> )

Called when the RecoveryMetrics event is triggered

source

fn on_congestion( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &Congestion<'_> )

Called when the Congestion event is triggered

source

fn on_ack_processed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &AckProcessed<'_> )

👎Deprecated: use on_rx_ack_range_dropped event instead

Called when the AckProcessed event is triggered

source

fn on_rx_ack_range_dropped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &RxAckRangeDropped<'_> )

Called when the RxAckRangeDropped event is triggered

source

fn on_ack_range_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &AckRangeReceived<'_> )

Called when the AckRangeReceived event is triggered

source

fn on_ack_range_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &AckRangeSent )

Called when the AckRangeSent event is triggered

source

fn on_packet_dropped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacketDropped<'_> )

Called when the PacketDropped event is triggered

source

fn on_key_update( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &KeyUpdate )

Called when the KeyUpdate event is triggered

source

fn on_key_space_discarded( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &KeySpaceDiscarded )

Called when the KeySpaceDiscarded event is triggered

source

fn on_connection_started( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionStarted<'_> )

Called when the ConnectionStarted event is triggered

source

fn on_connection_closed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionClosed )

Called when the ConnectionClosed event is triggered

source

fn on_duplicate_packet( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DuplicatePacket<'_> )

Called when the DuplicatePacket event is triggered

source

fn on_transport_parameters_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TransportParametersReceived<'_> )

Called when the TransportParametersReceived event is triggered

source

fn on_datagram_sent( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DatagramSent )

Called when the DatagramSent event is triggered

source

fn on_datagram_received( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DatagramReceived )

Called when the DatagramReceived event is triggered

source

fn on_datagram_dropped( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DatagramDropped )

Called when the DatagramDropped event is triggered

source

fn on_connection_id_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionIdUpdated<'_> )

Called when the ConnectionIdUpdated event is triggered

source

fn on_ecn_state_changed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &EcnStateChanged<'_> )

Called when the EcnStateChanged event is triggered

source

fn on_connection_migration_denied( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionMigrationDenied )

Called when the ConnectionMigrationDenied event is triggered

source

fn on_handshake_status_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &HandshakeStatusUpdated )

Called when the HandshakeStatusUpdated event is triggered

source

fn on_tls_exporter_ready( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TlsExporterReady<'_> )

Called when the TlsExporterReady event is triggered

source

fn on_path_challenge_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PathChallengeUpdated<'_> )

Called when the PathChallengeUpdated event is triggered

source

fn on_tls_client_hello( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TlsClientHello<'_> )

Called when the TlsClientHello event is triggered

source

fn on_tls_server_hello( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TlsServerHello<'_> )

Called when the TlsServerHello event is triggered

source

fn on_rx_stream_progress( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &RxStreamProgress )

Called when the RxStreamProgress event is triggered

source

fn on_tx_stream_progress( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &TxStreamProgress )

Called when the TxStreamProgress event is triggered

source

fn on_keep_alive_timer_expired( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &KeepAliveTimerExpired )

Called when the KeepAliveTimerExpired event is triggered

source

fn on_mtu_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &MtuUpdated )

Called when the MtuUpdated event is triggered

source

fn on_slow_start_exited( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &SlowStartExited )

Called when the SlowStartExited event is triggered

source

fn on_delivery_rate_sampled( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &DeliveryRateSampled )

Called when the DeliveryRateSampled event is triggered

source

fn on_pacing_rate_updated( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &PacingRateUpdated )

Called when the PacingRateUpdated event is triggered

source

fn on_bbr_state_changed( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &BbrStateChanged )

Called when the BbrStateChanged event is triggered

source

fn on_version_information( &mut self, meta: &EndpointMeta, event: &VersionInformation<'_> )

Called when the VersionInformation event is triggered

source

fn on_endpoint_packet_sent( &mut self, meta: &EndpointMeta, event: &EndpointPacketSent )

Called when the EndpointPacketSent event is triggered

source

fn on_endpoint_packet_received( &mut self, meta: &EndpointMeta, event: &EndpointPacketReceived )

Called when the EndpointPacketReceived event is triggered

source

fn on_endpoint_datagram_sent( &mut self, meta: &EndpointMeta, event: &EndpointDatagramSent )

Called when the EndpointDatagramSent event is triggered

source

fn on_endpoint_datagram_received( &mut self, meta: &EndpointMeta, event: &EndpointDatagramReceived )

Called when the EndpointDatagramReceived event is triggered

source

fn on_endpoint_datagram_dropped( &mut self, meta: &EndpointMeta, event: &EndpointDatagramDropped )

Called when the EndpointDatagramDropped event is triggered

source

fn on_endpoint_connection_attempt_failed( &mut self, meta: &EndpointMeta, event: &EndpointConnectionAttemptFailed )

Called when the EndpointConnectionAttemptFailed event is triggered

source

fn on_platform_tx(&mut self, meta: &EndpointMeta, event: &PlatformTx)

Called when the PlatformTx event is triggered

source

fn on_platform_tx_error(&mut self, meta: &EndpointMeta, event: &PlatformTxError)

Called when the PlatformTxError event is triggered

source

fn on_platform_rx(&mut self, meta: &EndpointMeta, event: &PlatformRx)

Called when the PlatformRx event is triggered

source

fn on_platform_rx_error(&mut self, meta: &EndpointMeta, event: &PlatformRxError)

Called when the PlatformRxError event is triggered

source

fn on_platform_feature_configured( &mut self, meta: &EndpointMeta, event: &PlatformFeatureConfigured )

Called when the PlatformFeatureConfigured event is triggered

source

fn on_platform_event_loop_wakeup( &mut self, meta: &EndpointMeta, event: &PlatformEventLoopWakeup )

Called when the PlatformEventLoopWakeup event is triggered

source

fn on_platform_event_loop_sleep( &mut self, meta: &EndpointMeta, event: &PlatformEventLoopSleep )

Called when the PlatformEventLoopSleep event is triggered

source

fn on_event<M, E>(&mut self, meta: &M, event: &E)
where M: Meta, E: Event,

Called for each event that relates to the endpoint and all connections

source

fn on_connection_event<E>( &mut self, context: &mut Self::ConnectionContext, meta: &ConnectionMeta, event: &E )
where E: Event,

Called for each event that relates to a connection

source

fn query( context: &Self::ConnectionContext, query: &mut dyn Query ) -> ControlFlow

Used for querying the Subscriber::ConnectionContext on a Subscriber

source

fn query_mut( context: &mut Self::ConnectionContext, query: &mut dyn QueryMut ) -> ControlFlow

Used for querying and mutating the Subscriber::ConnectionContext on a Subscriber

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<A, B> Subscriber for (A, B)
where A: Subscriber, B: Subscriber,

Subscriber is implemented for a 2-element tuple to make it easy to compose multiple subscribers.

§

type ConnectionContext = (<A as Subscriber>::ConnectionContext, <B as Subscriber>::ConnectionContext)

source§

fn create_connection_context( &mut self, meta: &ConnectionMeta, info: &ConnectionInfo ) -> <(A, B) as Subscriber>::ConnectionContext

source§

fn supervisor_timeout( &mut self, conn_context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, context: &Context<'_> ) -> Option<Duration>

source§

fn on_supervisor_timeout( &mut self, conn_context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, context: &Context<'_> ) -> Outcome

source§

fn on_application_protocol_information( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ApplicationProtocolInformation<'_> )

source§

fn on_server_name_information( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ServerNameInformation<'_> )

source§

fn on_packet_skipped( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PacketSkipped )

source§

fn on_packet_sent( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PacketSent )

source§

fn on_packet_received( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PacketReceived )

source§

fn on_active_path_updated( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ActivePathUpdated<'_> )

source§

fn on_path_created( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PathCreated<'_> )

source§

fn on_frame_sent( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &FrameSent )

source§

fn on_frame_received( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &FrameReceived<'_> )

source§

fn on_packet_lost( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PacketLost<'_> )

source§

fn on_recovery_metrics( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &RecoveryMetrics<'_> )

source§

fn on_congestion( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &Congestion<'_> )

source§

fn on_ack_processed( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &AckProcessed<'_> )

👎Deprecated: use on_rx_ack_range_dropped event instead
source§

fn on_rx_ack_range_dropped( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &RxAckRangeDropped<'_> )

source§

fn on_ack_range_received( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &AckRangeReceived<'_> )

source§

fn on_ack_range_sent( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &AckRangeSent )

source§

fn on_packet_dropped( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PacketDropped<'_> )

source§

fn on_key_update( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &KeyUpdate )

source§

fn on_key_space_discarded( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &KeySpaceDiscarded )

source§

fn on_connection_started( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionStarted<'_> )

source§

fn on_connection_closed( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionClosed )

source§

fn on_duplicate_packet( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &DuplicatePacket<'_> )

source§

fn on_transport_parameters_received( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &TransportParametersReceived<'_> )

source§

fn on_datagram_sent( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &DatagramSent )

source§

fn on_datagram_received( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &DatagramReceived )

source§

fn on_datagram_dropped( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &DatagramDropped )

source§

fn on_connection_id_updated( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionIdUpdated<'_> )

source§

fn on_ecn_state_changed( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &EcnStateChanged<'_> )

source§

fn on_connection_migration_denied( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &ConnectionMigrationDenied )

source§

fn on_handshake_status_updated( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &HandshakeStatusUpdated )

source§

fn on_tls_exporter_ready( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &TlsExporterReady<'_> )

source§

fn on_path_challenge_updated( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PathChallengeUpdated<'_> )

source§

fn on_tls_client_hello( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &TlsClientHello<'_> )

source§

fn on_tls_server_hello( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &TlsServerHello<'_> )

source§

fn on_rx_stream_progress( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &RxStreamProgress )

source§

fn on_tx_stream_progress( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &TxStreamProgress )

source§

fn on_keep_alive_timer_expired( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &KeepAliveTimerExpired )

source§

fn on_mtu_updated( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &MtuUpdated )

source§

fn on_slow_start_exited( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &SlowStartExited )

source§

fn on_delivery_rate_sampled( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &DeliveryRateSampled )

source§

fn on_pacing_rate_updated( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &PacingRateUpdated )

source§

fn on_bbr_state_changed( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &BbrStateChanged )

source§

fn on_version_information( &mut self, meta: &EndpointMeta, event: &VersionInformation<'_> )

source§

fn on_endpoint_packet_sent( &mut self, meta: &EndpointMeta, event: &EndpointPacketSent )

source§

fn on_endpoint_packet_received( &mut self, meta: &EndpointMeta, event: &EndpointPacketReceived )

source§

fn on_endpoint_datagram_sent( &mut self, meta: &EndpointMeta, event: &EndpointDatagramSent )

source§

fn on_endpoint_datagram_received( &mut self, meta: &EndpointMeta, event: &EndpointDatagramReceived )

source§

fn on_endpoint_datagram_dropped( &mut self, meta: &EndpointMeta, event: &EndpointDatagramDropped )

source§

fn on_endpoint_connection_attempt_failed( &mut self, meta: &EndpointMeta, event: &EndpointConnectionAttemptFailed )

source§

fn on_platform_tx(&mut self, meta: &EndpointMeta, event: &PlatformTx)

source§

fn on_platform_tx_error(&mut self, meta: &EndpointMeta, event: &PlatformTxError)

source§

fn on_platform_rx(&mut self, meta: &EndpointMeta, event: &PlatformRx)

source§

fn on_platform_rx_error(&mut self, meta: &EndpointMeta, event: &PlatformRxError)

source§

fn on_platform_feature_configured( &mut self, meta: &EndpointMeta, event: &PlatformFeatureConfigured )

source§

fn on_platform_event_loop_wakeup( &mut self, meta: &EndpointMeta, event: &PlatformEventLoopWakeup )

source§

fn on_platform_event_loop_sleep( &mut self, meta: &EndpointMeta, event: &PlatformEventLoopSleep )

source§

fn on_event<M, E>(&mut self, meta: &M, event: &E)
where M: Meta, E: Event,

source§

fn on_connection_event<E>( &mut self, context: &mut <(A, B) as Subscriber>::ConnectionContext, meta: &ConnectionMeta, event: &E )
where E: Event,

source§

fn query( context: &<(A, B) as Subscriber>::ConnectionContext, query: &mut dyn Query ) -> ControlFlow

source§

fn query_mut( context: &mut <(A, B) as Subscriber>::ConnectionContext, query: &mut dyn QueryMut ) -> ControlFlow

Implementors§