pub struct SlidingWindowRateLimiter { /* private fields */ }Implementations§
Source§impl SlidingWindowRateLimiter
impl SlidingWindowRateLimiter
pub fn new(max_requests: u64, window_size: Duration) -> Self
Sourcepub fn with_max_keys(self, max_keys: usize) -> Self
pub fn with_max_keys(self, max_keys: usize) -> Self
Configures the maximum number of keys (added in v0.2.1, fixes Critical S-3 OOM DoS)
When entries.len() exceeds max_keys, the oldest entry is forcibly evicted.
The default value is DEFAULT_MAX_KEYS (10000).
pub fn max_requests(&self) -> u64
pub fn window_size(&self) -> Duration
pub fn max_keys(&self) -> usize
pub fn key_count(&self) -> usize
Trait Implementations§
Source§impl RateLimiter for SlidingWindowRateLimiter
impl RateLimiter for SlidingWindowRateLimiter
fn acquire(&self, key: &str) -> Result<RateLimitResult, RateLimitError>
fn try_acquire(&self, key: &str) -> Result<RateLimitResult, RateLimitError>
fn reset(&self, key: &str) -> Result<(), RateLimitError>
Auto Trait Implementations§
impl !Freeze for SlidingWindowRateLimiter
impl RefUnwindSafe for SlidingWindowRateLimiter
impl Send for SlidingWindowRateLimiter
impl Sync for SlidingWindowRateLimiter
impl Unpin for SlidingWindowRateLimiter
impl UnsafeUnpin for SlidingWindowRateLimiter
impl UnwindSafe for SlidingWindowRateLimiter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more