HybridCleanupStrategy

Struct HybridCleanupStrategy 

Source
pub struct HybridCleanupStrategy { /* private fields */ }
Expand description

Default hybrid cleanup strategy that triggers cleanup based on both request count and elapsed time since the last cleanup.

This strategy maintains an internal counter of verification requests and tracks the time since the last cleanup. Cleanup is triggered when either threshold is exceeded.

Implementations§

Source§

impl HybridCleanupStrategy

Source

pub fn new(count_threshold: u32, time_threshold: Duration) -> Self

Creates a new hybrid cleanup strategy with the specified thresholds.

§Arguments
  • count_threshold - Number of verification requests before triggering cleanup
  • time_threshold - Maximum time duration between cleanups
§Example
use std::time::Duration;
use nonce_auth::nonce::cleanup::HybridCleanupStrategy;

// Cleanup every 100 requests or every 5 minutes
let strategy = HybridCleanupStrategy::new(100, Duration::from_secs(300));
Source

pub fn set_thresholds(&mut self, count_threshold: u32, time_threshold: Duration)

Updates the thresholds for this strategy.

This method allows modifying the cleanup triggers after creation.

Trait Implementations§

Source§

impl CleanupStrategy for HybridCleanupStrategy

Source§

fn should_cleanup<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Determines whether cleanup should be triggered. Read more
Source§

fn mark_as_cleaned<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Marks that cleanup has been performed and resets internal state. Read more
Source§

impl Default for HybridCleanupStrategy

Source§

fn default() -> Self

Creates a new hybrid cleanup strategy with default thresholds.

Uses a count threshold of 100 requests and a time threshold of 5 minutes.

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.