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
配置最大 key 数量(v0.2.1 新增,修复 Critical S-3 OOM DoS)
当 entries.len() 超过 max_keys 时,会强制淘汰一个最旧的 entry。
默认值为 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