pub struct RateLimiter { /* private fields */ }Expand description
Rate limiter using token bucket algorithm
Implementations§
Source§impl RateLimiter
impl RateLimiter
pub fn new(default_config: RateLimitConfig) -> Self
Sourcepub fn set_config(&self, identifier: &str, config: RateLimitConfig)
pub fn set_config(&self, identifier: &str, config: RateLimitConfig)
Set custom config for a specific identifier
Sourcepub fn check_rate_limit(&self, identifier: &str) -> RateLimitResult
pub fn check_rate_limit(&self, identifier: &str) -> RateLimitResult
Check if request is allowed
Sourcepub fn check_rate_limit_with_cost(
&self,
identifier: &str,
cost: f64,
) -> RateLimitResult
pub fn check_rate_limit_with_cost( &self, identifier: &str, cost: f64, ) -> RateLimitResult
Check rate limit with custom cost (for expensive operations)
Sourcepub fn get_stats(&self, identifier: &str) -> Option<RateLimitStats>
pub fn get_stats(&self, identifier: &str) -> Option<RateLimitStats>
Get current stats for an identifier
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RateLimiter
impl !RefUnwindSafe for RateLimiter
impl Send for RateLimiter
impl Sync for RateLimiter
impl Unpin for RateLimiter
impl !UnwindSafe for RateLimiter
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more