pub struct RateLimitConfig {
pub requests_per_second: u64,
pub burst_size: u64,
pub window_size: Duration,
pub algorithm: RateLimitAlgorithm,
pub enabled: bool,
pub per_tenant: bool,
pub default_tenant_quota: u64,
}Expand description
Configuration for rate limiting.
Fields§
§requests_per_second: u64Maximum requests per second.
burst_size: u64Burst capacity (for token bucket).
window_size: DurationWindow size for sliding/fixed window algorithms.
algorithm: RateLimitAlgorithmAlgorithm to use.
enabled: boolWhether rate limiting is enabled.
per_tenant: boolWhether to track per-tenant limits.
default_tenant_quota: u64Default quota for new tenants.
Implementations§
Source§impl RateLimitConfig
impl RateLimitConfig
Sourcepub fn with_requests_per_second(self, rps: u64) -> Self
pub fn with_requests_per_second(self, rps: u64) -> Self
Set the requests per second limit.
Sourcepub fn with_burst_size(self, size: u64) -> Self
pub fn with_burst_size(self, size: u64) -> Self
Set the burst size.
Sourcepub fn with_window_size(self, size: Duration) -> Self
pub fn with_window_size(self, size: Duration) -> Self
Set the window size.
Sourcepub fn with_algorithm(self, algorithm: RateLimitAlgorithm) -> Self
pub fn with_algorithm(self, algorithm: RateLimitAlgorithm) -> Self
Set the algorithm.
Sourcepub fn with_enabled(self, enabled: bool) -> Self
pub fn with_enabled(self, enabled: bool) -> Self
Enable or disable rate limiting.
Sourcepub fn with_per_tenant(self, per_tenant: bool) -> Self
pub fn with_per_tenant(self, per_tenant: bool) -> Self
Enable or disable per-tenant limiting.
Sourcepub fn with_default_tenant_quota(self, quota: u64) -> Self
pub fn with_default_tenant_quota(self, quota: u64) -> Self
Set the default tenant quota.
Sourcepub fn permissive(rps: u64) -> Self
pub fn permissive(rps: u64) -> Self
Create a permissive rate limit configuration.
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 · 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 UnwindSafe for RateLimitConfig
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.