pub struct RateLimitManager { /* private fields */ }Expand description
Per-site rate limit manager.
Implementations§
Source§impl RateLimitManager
impl RateLimitManager
Sourcepub fn with_global(config: RateLimitConfig) -> Self
pub fn with_global(config: RateLimitConfig) -> Self
Creates a manager with a global rate limit.
Sourcepub fn set_default_config(&mut self, config: RateLimitConfig)
pub fn set_default_config(&mut self, config: RateLimitConfig)
Sets the default configuration for new sites.
Sourcepub fn add_site(&self, hostname: &str, config: RateLimitConfig)
pub fn add_site(&self, hostname: &str, config: RateLimitConfig)
Adds a site-specific rate limiter.
Sourcepub fn remove_site(&self, hostname: &str)
pub fn remove_site(&self, hostname: &str)
Removes a site-specific rate limiter.
Sourcepub fn check(&self, hostname: &str, key: &str) -> RateLimitDecision
pub fn check(&self, hostname: &str, key: &str) -> RateLimitDecision
Checks if a request is allowed.
§Arguments
hostname- The site hostnamekey- The rate limit key (usually client IP)
Sourcepub fn is_allowed(&self, hostname: &str, key: &str) -> bool
pub fn is_allowed(&self, hostname: &str, key: &str) -> bool
Returns true if the request is allowed.
Sourcepub fn stats(&self) -> RateLimitStats
pub fn stats(&self) -> RateLimitStats
Returns rate limit statistics.
Trait Implementations§
Source§impl Debug for RateLimitManager
impl Debug for RateLimitManager
Auto Trait Implementations§
impl !Freeze for RateLimitManager
impl !RefUnwindSafe for RateLimitManager
impl Send for RateLimitManager
impl Sync for RateLimitManager
impl Unpin for RateLimitManager
impl UnsafeUnpin 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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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