Trait s2n_quic_core::time::timer::Provider

source ·
pub trait Provider {
    // Required method
    fn timers<Q: Query>(&self, query: &mut Q) -> Result;

    // Provided methods
    fn next_expiration(&self) -> Option<Timestamp> { ... }
    fn is_armed(&self) -> bool { ... }
    fn armed_timer_count(&self) -> usize { ... }
    fn for_each_timer<F: FnMut(&Timer) -> Result>(&self, f: F) { ... }
}
Expand description

A trait for a components that owns at least one timer

Required Methods§

source

fn timers<Q: Query>(&self, query: &mut Q) -> Result

Notifies the query of any timers owned by the provider

The provider should also delegate to subcomponents that own timers as well.

Provided Methods§

source

fn next_expiration(&self) -> Option<Timestamp>

Returns the next Timestamp at which the earliest timer is armed in the provider

source

fn is_armed(&self) -> bool

Returns true if there are any timers armed

source

fn armed_timer_count(&self) -> usize

Counts the number of armed timers in the provider

source

fn for_each_timer<F: FnMut(&Timer) -> Result>(&self, f: F)

Iterates over each timer in the provider and calls the provided function

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<A: Provider, B: Provider> Provider for (A, B)

Implement Provider for a 2-element tuple to make it easy to do joins

source§

fn timers<Q: Query>(&self, query: &mut Q) -> Result

source§

impl<T: Provider> Provider for Option<T>

source§

fn timers<Q: Query>(&self, query: &mut Q) -> Result

source§

impl<T: Provider> Provider for &T

source§

fn timers<Q: Query>(&self, query: &mut Q) -> Result

source§

impl<T: Provider> Provider for &mut T

source§

fn timers<Q: Query>(&self, query: &mut Q) -> Result

Implementors§

source§

impl Provider for s2n_quic_core::path::ecn::Controller

source§

impl Provider for s2n_quic_core::path::mtu::Controller

source§

impl Provider for Pto

source§

impl Provider for TokenBucket

source§

impl Provider for Timer

source§

impl<K> Provider for KeySet<K>