Skip to main content

CounterStore

Trait CounterStore 

Source
pub trait CounterStore: Send + Sync {
    // Required method
    fn incr_fixed_window<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str,
        limit: u64,
        window: Duration,
    ) -> Pin<Box<dyn Future<Output = Result<WindowResult, CounterError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

A backend that counts requests per key within fixed time windows.

Required Methods§

Source

fn incr_fixed_window<'life0, 'life1, 'async_trait>( &'life0 self, key: &'life1 str, limit: u64, window: Duration, ) -> Pin<Box<dyn Future<Output = Result<WindowResult, CounterError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Atomically counts one request for key in the current fixed window of length window, allowing up to limit requests per window.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§