pub struct RateLimitManager { /* private fields */ }Expand description
Rate limiting manager
Implementations§
Source§impl RateLimitManager
impl RateLimitManager
pub fn new(config: RateLimitConfig) -> Self
Sourcepub async fn check_ip_limit(&self, ip: IpAddr) -> Result<()>
pub async fn check_ip_limit(&self, ip: IpAddr) -> Result<()>
Check rate limit for IP address
Sourcepub async fn check_user_limit(&self, user_id: &str) -> Result<()>
pub async fn check_user_limit(&self, user_id: &str) -> Result<()>
Check rate limit for user
Sourcepub async fn check_global_limit(&self) -> Result<()>
pub async fn check_global_limit(&self) -> Result<()>
Check global rate limit
Sourcepub async fn cleanup_limiters(&self) -> Result<()>
pub async fn cleanup_limiters(&self) -> Result<()>
Clean up old limiters to prevent memory leaks
Sourcepub async fn get_statistics(&self) -> RateLimitStatistics
pub async fn get_statistics(&self) -> RateLimitStatistics
Get rate limit statistics
pub fn is_enabled(&self) -> bool
Auto Trait Implementations§
impl Freeze for RateLimitManager
impl !RefUnwindSafe for RateLimitManager
impl Send for RateLimitManager
impl Sync for RateLimitManager
impl Unpin for RateLimitManager
impl !UnwindSafe for RateLimitManager
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