pub struct TokenBucketStrategy { /* private fields */ }Expand description
Token bucket rate limiting strategy
This strategy implements a time-based token bucket algorithm where:
- Tokens are replenished continuously based on elapsed time
- The replenishment rate is
max_requestspertime_window - Burst capacity allows temporary spikes up to
burst_sizetokens
Implementations§
Trait Implementations§
Source§impl Clone for TokenBucketStrategy
impl Clone for TokenBucketStrategy
Source§fn clone(&self) -> TokenBucketStrategy
fn clone(&self) -> TokenBucketStrategy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TokenBucketStrategy
impl Debug for TokenBucketStrategy
Source§impl RateLimitStrategy for TokenBucketStrategy
impl RateLimitStrategy for TokenBucketStrategy
Source§fn check_rate_limit(&self, client_id: &str) -> Result<(), ToolError>
fn check_rate_limit(&self, client_id: &str) -> Result<(), ToolError>
Check if a request should be allowed for the given client Read more
Source§fn reset_client(&self, client_id: &str)
fn reset_client(&self, client_id: &str)
Reset rate limit state for a specific client
Source§fn get_request_count(&self, client_id: &str) -> usize
fn get_request_count(&self, client_id: &str) -> usize
Get current request count for a client
Source§fn strategy_name(&self) -> &str
fn strategy_name(&self) -> &str
Get strategy name for debugging/logging
Auto Trait Implementations§
impl Freeze for TokenBucketStrategy
impl !RefUnwindSafe for TokenBucketStrategy
impl Send for TokenBucketStrategy
impl Sync for TokenBucketStrategy
impl Unpin for TokenBucketStrategy
impl !UnwindSafe for TokenBucketStrategy
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