pub struct ConnectionRateLimiter { /* private fields */ }Expand description
Connection rate limiter
Implementations§
Source§impl ConnectionRateLimiter
impl ConnectionRateLimiter
Sourcepub fn new(config: RateLimiterConfig) -> Self
pub fn new(config: RateLimiterConfig) -> Self
Create a new connection rate limiter
Sourcepub async fn allow_connection(&self, peer_id: &str) -> bool
pub async fn allow_connection(&self, peer_id: &str) -> bool
Check if a connection is allowed
Sourcepub async fn allow_connection_with_priority(
&self,
peer_id: &str,
priority: ConnectionPriority,
) -> bool
pub async fn allow_connection_with_priority( &self, peer_id: &str, priority: ConnectionPriority, ) -> bool
Check if a connection is allowed with specific priority
Sourcepub fn record_success(&self, peer_id: &str)
pub fn record_success(&self, peer_id: &str)
Record a successful connection
Sourcepub fn record_failure(&self, peer_id: &str)
pub fn record_failure(&self, peer_id: &str)
Record a failed connection
Sourcepub async fn process_queue(&self) -> Vec<String>
pub async fn process_queue(&self) -> Vec<String>
Process queued connections
Sourcepub fn stats(&self) -> RateLimiterStats
pub fn stats(&self) -> RateLimiterStats
Get current statistics
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