pub struct RateLimitConfig {
pub max_requests_per_window: u32,
pub window_duration: Duration,
pub trusted_proxies: Option<TrustedProxyConfig>,
}Expand description
Rate limiting configuration for HTTP endpoints
Fields§
§max_requests_per_window: u32Maximum requests per time window (default: 100)
window_duration: DurationTime window duration (default: 60 seconds)
trusted_proxies: Option<TrustedProxyConfig>Opt-in trusted-proxy allowlist. None (the default) always keys the
rate limiter on the real TCP peer address. See TrustedProxyConfig.
Implementations§
Source§impl RateLimitConfig
impl RateLimitConfig
Sourcepub fn new(requests_per_minute: u32) -> Self
pub fn new(requests_per_minute: u32) -> Self
Build a per-minute rate limit (requests_per_minute requests per 60-second window).
Sourcepub fn with_window(self, duration: Duration) -> Self
pub fn with_window(self, duration: Duration) -> Self
Override the window duration that max_requests_per_window applies to.
Sourcepub fn with_trusted_proxies(self, config: TrustedProxyConfig) -> Self
pub fn with_trusted_proxies(self, config: TrustedProxyConfig) -> Self
Opt in to trusting X-Forwarded-For/X-Real-IP from the given proxy allowlist.
Trait Implementations§
Source§impl Clone for RateLimitConfig
impl Clone for RateLimitConfig
Source§fn clone(&self) -> RateLimitConfig
fn clone(&self) -> RateLimitConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RateLimitConfig
impl Debug for RateLimitConfig
Auto Trait Implementations§
impl Freeze for RateLimitConfig
impl RefUnwindSafe for RateLimitConfig
impl Send for RateLimitConfig
impl Sync for RateLimitConfig
impl Unpin for RateLimitConfig
impl UnsafeUnpin for RateLimitConfig
impl UnwindSafe for RateLimitConfig
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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