pub struct ConnectionRateLimiter { /* private fields */ }
Implementations§
Source§impl ConnectionRateLimiter
impl ConnectionRateLimiter
Sourcepub fn new(limit_per_minute: u64) -> Self
pub fn new(limit_per_minute: u64) -> Self
Create a new rate limiter per IpAddr. The rate is specified as the count per minute to allow for less frequent connections.
Sourcepub fn is_allowed(&self, ip: &IpAddr) -> bool
pub fn is_allowed(&self, ip: &IpAddr) -> bool
Check if the connection from the said ip
is allowed.
Sourcepub fn retain_recent(&self)
pub fn retain_recent(&self)
retain only keys whose rate-limiting start date is within the rate-limiting interval. Otherwise drop them as inactive
Auto Trait Implementations§
impl Freeze for ConnectionRateLimiter
impl !RefUnwindSafe for ConnectionRateLimiter
impl Send for ConnectionRateLimiter
impl Sync for ConnectionRateLimiter
impl Unpin for ConnectionRateLimiter
impl UnwindSafe for ConnectionRateLimiter
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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