pub trait Subscriber: 'static + Send {
type ConnectionContext: 'static + Send;
Show 51 methods
fn create_connection_context(
&mut self,
meta: &ConnectionMeta,
info: &ConnectionInfo
) -> Self::ConnectionContext;
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_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_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_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_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_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
Associated Types
type ConnectionContext: 'static + Send
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
fn create_connection_context(
&mut self,
meta: &ConnectionMeta,
info: &ConnectionInfo
) -> Self::ConnectionContext
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
fn supervisor_timeout(
&mut self,
conn_context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
context: &Context<'_>
) -> Option<Duration>
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::Subscriber
s are composed together, the minimum supervisor_timeout
across all event::Subscriber
s will be used.
If the supervisor_timeout()
is None
across all event::Subscriber
s, 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.
fn on_supervisor_timeout(
&mut self,
conn_context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
context: &Context<'_>
) -> Outcome
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::Subscriber
s are composed together, the minimum supervisor_timeout
across all event::Subscriber
s will be used, and thus on_supervisor_timeout
may be called
earlier than the supervisor_timeout
for a given event::Subscriber
implementation.
fn on_application_protocol_information(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ApplicationProtocolInformation<'_>
)
fn on_application_protocol_information(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ApplicationProtocolInformation<'_>
)
Called when the ApplicationProtocolInformation
event is triggered
fn on_server_name_information(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ServerNameInformation<'_>
)
fn on_server_name_information(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ServerNameInformation<'_>
)
Called when the ServerNameInformation
event is triggered
fn on_packet_sent(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketSent
)
fn on_packet_sent(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketSent
)
Called when the PacketSent
event is triggered
fn on_packet_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketReceived
)
fn on_packet_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketReceived
)
Called when the PacketReceived
event is triggered
fn on_active_path_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ActivePathUpdated<'_>
)
fn on_active_path_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ActivePathUpdated<'_>
)
Called when the ActivePathUpdated
event is triggered
fn on_path_created(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PathCreated<'_>
)
fn on_path_created(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PathCreated<'_>
)
Called when the PathCreated
event is triggered
fn on_frame_sent(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &FrameSent
)
fn on_frame_sent(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &FrameSent
)
Called when the FrameSent
event is triggered
fn on_frame_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &FrameReceived<'_>
)
fn on_frame_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &FrameReceived<'_>
)
Called when the FrameReceived
event is triggered
fn on_packet_lost(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketLost<'_>
)
fn on_packet_lost(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketLost<'_>
)
Called when the PacketLost
event is triggered
fn on_recovery_metrics(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &RecoveryMetrics<'_>
)
fn on_recovery_metrics(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &RecoveryMetrics<'_>
)
Called when the RecoveryMetrics
event is triggered
fn on_congestion(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &Congestion<'_>
)
fn on_congestion(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &Congestion<'_>
)
Called when the Congestion
event is triggered
fn on_packet_dropped(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketDropped<'_>
)
fn on_packet_dropped(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PacketDropped<'_>
)
Called when the PacketDropped
event is triggered
fn on_key_update(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &KeyUpdate
)
fn on_key_update(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &KeyUpdate
)
Called when the KeyUpdate
event is triggered
fn on_key_space_discarded(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &KeySpaceDiscarded
)
fn on_key_space_discarded(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &KeySpaceDiscarded
)
Called when the KeySpaceDiscarded
event is triggered
fn on_connection_started(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionStarted<'_>
)
fn on_connection_started(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionStarted<'_>
)
Called when the ConnectionStarted
event is triggered
fn on_connection_closed(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionClosed
)
fn on_connection_closed(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionClosed
)
Called when the ConnectionClosed
event is triggered
fn on_duplicate_packet(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DuplicatePacket<'_>
)
fn on_duplicate_packet(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DuplicatePacket<'_>
)
Called when the DuplicatePacket
event is triggered
fn on_transport_parameters_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TransportParametersReceived<'_>
)
fn on_transport_parameters_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TransportParametersReceived<'_>
)
Called when the TransportParametersReceived
event is triggered
fn on_datagram_sent(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DatagramSent
)
fn on_datagram_sent(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DatagramSent
)
Called when the DatagramSent
event is triggered
fn on_datagram_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DatagramReceived
)
fn on_datagram_received(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DatagramReceived
)
Called when the DatagramReceived
event is triggered
fn on_datagram_dropped(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DatagramDropped
)
fn on_datagram_dropped(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &DatagramDropped
)
Called when the DatagramDropped
event is triggered
fn on_connection_id_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionIdUpdated<'_>
)
fn on_connection_id_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionIdUpdated<'_>
)
Called when the ConnectionIdUpdated
event is triggered
fn on_ecn_state_changed(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &EcnStateChanged<'_>
)
fn on_ecn_state_changed(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &EcnStateChanged<'_>
)
Called when the EcnStateChanged
event is triggered
fn on_connection_migration_denied(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionMigrationDenied
)
fn on_connection_migration_denied(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &ConnectionMigrationDenied
)
Called when the ConnectionMigrationDenied
event is triggered
fn on_handshake_status_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &HandshakeStatusUpdated
)
fn on_handshake_status_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &HandshakeStatusUpdated
)
Called when the HandshakeStatusUpdated
event is triggered
fn on_path_challenge_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PathChallengeUpdated<'_>
)
fn on_path_challenge_updated(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &PathChallengeUpdated<'_>
)
Called when the PathChallengeUpdated
event is triggered
fn on_tls_client_hello(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TlsClientHello<'_>
)
fn on_tls_client_hello(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TlsClientHello<'_>
)
Called when the TlsClientHello
event is triggered
fn on_tls_server_hello(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TlsServerHello<'_>
)
fn on_tls_server_hello(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TlsServerHello<'_>
)
Called when the TlsServerHello
event is triggered
fn on_rx_stream_progress(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &RxStreamProgress
)
fn on_rx_stream_progress(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &RxStreamProgress
)
Called when the RxStreamProgress
event is triggered
fn on_tx_stream_progress(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TxStreamProgress
)
fn on_tx_stream_progress(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &TxStreamProgress
)
Called when the TxStreamProgress
event is triggered
fn on_keep_alive_timer_expired(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &KeepAliveTimerExpired
)
fn on_keep_alive_timer_expired(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &KeepAliveTimerExpired
)
Called when the KeepAliveTimerExpired
event is triggered
fn on_version_information(
&mut self,
meta: &EndpointMeta,
event: &VersionInformation<'_>
)
fn on_version_information(
&mut self,
meta: &EndpointMeta,
event: &VersionInformation<'_>
)
Called when the VersionInformation
event is triggered
fn on_endpoint_packet_sent(
&mut self,
meta: &EndpointMeta,
event: &EndpointPacketSent
)
fn on_endpoint_packet_sent(
&mut self,
meta: &EndpointMeta,
event: &EndpointPacketSent
)
Called when the EndpointPacketSent
event is triggered
fn on_endpoint_packet_received(
&mut self,
meta: &EndpointMeta,
event: &EndpointPacketReceived
)
fn on_endpoint_packet_received(
&mut self,
meta: &EndpointMeta,
event: &EndpointPacketReceived
)
Called when the EndpointPacketReceived
event is triggered
fn on_endpoint_datagram_sent(
&mut self,
meta: &EndpointMeta,
event: &EndpointDatagramSent
)
fn on_endpoint_datagram_sent(
&mut self,
meta: &EndpointMeta,
event: &EndpointDatagramSent
)
Called when the EndpointDatagramSent
event is triggered
fn on_endpoint_datagram_received(
&mut self,
meta: &EndpointMeta,
event: &EndpointDatagramReceived
)
fn on_endpoint_datagram_received(
&mut self,
meta: &EndpointMeta,
event: &EndpointDatagramReceived
)
Called when the EndpointDatagramReceived
event is triggered
fn on_endpoint_datagram_dropped(
&mut self,
meta: &EndpointMeta,
event: &EndpointDatagramDropped
)
fn on_endpoint_datagram_dropped(
&mut self,
meta: &EndpointMeta,
event: &EndpointDatagramDropped
)
Called when the EndpointDatagramDropped
event is triggered
fn on_endpoint_connection_attempt_failed(
&mut self,
meta: &EndpointMeta,
event: &EndpointConnectionAttemptFailed
)
fn on_endpoint_connection_attempt_failed(
&mut self,
meta: &EndpointMeta,
event: &EndpointConnectionAttemptFailed
)
Called when the EndpointConnectionAttemptFailed
event is triggered
fn on_platform_tx(&mut self, meta: &EndpointMeta, event: &PlatformTx)
fn on_platform_tx(&mut self, meta: &EndpointMeta, event: &PlatformTx)
Called when the PlatformTx
event is triggered
fn on_platform_tx_error(&mut self, meta: &EndpointMeta, event: &PlatformTxError)
fn on_platform_tx_error(&mut self, meta: &EndpointMeta, event: &PlatformTxError)
Called when the PlatformTxError
event is triggered
fn on_platform_rx(&mut self, meta: &EndpointMeta, event: &PlatformRx)
fn on_platform_rx(&mut self, meta: &EndpointMeta, event: &PlatformRx)
Called when the PlatformRx
event is triggered
fn on_platform_rx_error(&mut self, meta: &EndpointMeta, event: &PlatformRxError)
fn on_platform_rx_error(&mut self, meta: &EndpointMeta, event: &PlatformRxError)
Called when the PlatformRxError
event is triggered
fn on_platform_feature_configured(
&mut self,
meta: &EndpointMeta,
event: &PlatformFeatureConfigured
)
fn on_platform_feature_configured(
&mut self,
meta: &EndpointMeta,
event: &PlatformFeatureConfigured
)
Called when the PlatformFeatureConfigured
event is triggered
fn on_platform_event_loop_wakeup(
&mut self,
meta: &EndpointMeta,
event: &PlatformEventLoopWakeup
)
fn on_platform_event_loop_wakeup(
&mut self,
meta: &EndpointMeta,
event: &PlatformEventLoopWakeup
)
Called when the PlatformEventLoopWakeup
event is triggered
Called for each event that relates to the endpoint and all connections
fn on_connection_event<E>(
&mut self,
context: &mut Self::ConnectionContext,
meta: &ConnectionMeta,
event: &E
) where
E: Event,
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
fn query(
context: &Self::ConnectionContext,
query: &mut dyn Query
) -> ControlFlow
fn query(
context: &Self::ConnectionContext,
query: &mut dyn Query
) -> ControlFlow
Used for querying the Subscriber::ConnectionContext
on a Subscriber
fn query_mut(
context: &mut Self::ConnectionContext,
query: &mut dyn QueryMut
) -> ControlFlow
fn query_mut(
context: &mut Self::ConnectionContext,
query: &mut dyn QueryMut
) -> ControlFlow
Used for querying and mutating the Subscriber::ConnectionContext
on a Subscriber
Implementations on Foreign Types
sourceimpl<A, B> Subscriber for (A, B) where
A: Subscriber,
B: Subscriber,
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.