Struct RateLimitConfig
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§
§impl RateLimitConfig
impl RateLimitConfig
pub fn new() -> RateLimitConfig
pub fn new() -> RateLimitConfig
Create a new configuration with default values.
pub fn with_requests_per_second(self, rps: u64) -> RateLimitConfig
pub fn with_requests_per_second(self, rps: u64) -> RateLimitConfig
Set the requests per second limit.
pub fn with_burst_size(self, size: u64) -> RateLimitConfig
pub fn with_burst_size(self, size: u64) -> RateLimitConfig
Set the burst size.
pub fn with_window_size(self, size: Duration) -> RateLimitConfig
pub fn with_window_size(self, size: Duration) -> RateLimitConfig
Set the window size.
pub fn with_algorithm(self, algorithm: RateLimitAlgorithm) -> RateLimitConfig
pub fn with_algorithm(self, algorithm: RateLimitAlgorithm) -> RateLimitConfig
Set the algorithm.
pub fn with_enabled(self, enabled: bool) -> RateLimitConfig
pub fn with_enabled(self, enabled: bool) -> RateLimitConfig
Enable or disable rate limiting.
pub fn with_per_tenant(self, per_tenant: bool) -> RateLimitConfig
pub fn with_per_tenant(self, per_tenant: bool) -> RateLimitConfig
Enable or disable per-tenant limiting.
pub fn with_default_tenant_quota(self, quota: u64) -> RateLimitConfig
pub fn with_default_tenant_quota(self, quota: u64) -> RateLimitConfig
Set the default tenant quota.
pub fn strict(rps: u64) -> RateLimitConfig
pub fn strict(rps: u64) -> RateLimitConfig
Create a strict rate limit configuration.
pub fn permissive(rps: u64) -> RateLimitConfig
pub fn permissive(rps: u64) -> RateLimitConfig
Create a permissive rate limit configuration.
Trait Implementations§
§impl Clone for RateLimitConfig
impl Clone for RateLimitConfig
§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 more§impl Debug for RateLimitConfig
impl Debug for RateLimitConfig
§impl Default for RateLimitConfig
impl Default for RateLimitConfig
§fn default() -> RateLimitConfig
fn default() -> RateLimitConfig
Returns the “default value” for a type. Read more
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§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§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,
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§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.