pub struct RateLimitUtils;Expand description
Rate limiting utilities for common patterns
Implementations§
Source§impl RateLimitUtils
impl RateLimitUtils
Sourcepub fn endpoint_key(endpoint: &str, ip: &str) -> String
pub fn endpoint_key(endpoint: &str, ip: &str) -> String
Generate rate limit key for API endpoint
Sourcepub fn auth_key(ip: &str, username: Option<&str>) -> String
pub fn auth_key(ip: &str, username: Option<&str>) -> String
Generate rate limit key for authentication attempts
Sourcepub fn exponential_backoff(attempt: u32, base_duration: Duration) -> Duration
pub fn exponential_backoff(attempt: u32, base_duration: Duration) -> Duration
Calculate backoff duration for repeated violations
Sourcepub fn add_jitter(duration: Duration, jitter_factor: f64) -> Duration
pub fn add_jitter(duration: Duration, jitter_factor: f64) -> Duration
Apply jitter to retry duration to prevent thundering herd
Auto Trait Implementations§
impl Freeze for RateLimitUtils
impl RefUnwindSafe for RateLimitUtils
impl Send for RateLimitUtils
impl Sync for RateLimitUtils
impl Unpin for RateLimitUtils
impl UnwindSafe for RateLimitUtils
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