Struct RateLimiterBuilder
pub struct RateLimiterBuilder {
config: RateLimitConfig,
tenants: Vec<(String, u64)>,
}Expand description
Builder for creating rate limiters.
Fields§
§config: RateLimitConfig§tenants: Vec<(String, u64)>Implementations§
§impl RateLimiterBuilder
impl RateLimiterBuilder
pub fn new() -> RateLimiterBuilder
pub fn new() -> RateLimiterBuilder
Create a new builder with default configuration.
pub fn with_requests_per_second(self, rps: u64) -> RateLimiterBuilder
pub fn with_requests_per_second(self, rps: u64) -> RateLimiterBuilder
Set the requests per second limit.
pub fn with_burst_size(self, size: u64) -> RateLimiterBuilder
pub fn with_burst_size(self, size: u64) -> RateLimiterBuilder
Set the burst size.
pub fn with_algorithm(self, algorithm: RateLimitAlgorithm) -> RateLimiterBuilder
pub fn with_algorithm(self, algorithm: RateLimitAlgorithm) -> RateLimiterBuilder
Set the algorithm.
pub fn with_window_size(self, size: Duration) -> RateLimiterBuilder
pub fn with_window_size(self, size: Duration) -> RateLimiterBuilder
Set the window size.
pub fn with_enabled(self, enabled: bool) -> RateLimiterBuilder
pub fn with_enabled(self, enabled: bool) -> RateLimiterBuilder
Enable or disable rate limiting.
pub fn with_per_tenant(self, per_tenant: bool) -> RateLimiterBuilder
pub fn with_per_tenant(self, per_tenant: bool) -> RateLimiterBuilder
Enable or disable per-tenant limiting.
pub fn with_tenant(
self,
tenant_id: impl Into<String>,
quota: u64,
) -> RateLimiterBuilder
pub fn with_tenant( self, tenant_id: impl Into<String>, quota: u64, ) -> RateLimiterBuilder
Add a tenant with a specific quota.
pub fn build(self) -> RateLimiter
pub fn build(self) -> RateLimiter
Build the rate limiter.
Trait Implementations§
§impl Default for RateLimiterBuilder
impl Default for RateLimiterBuilder
§fn default() -> RateLimiterBuilder
fn default() -> RateLimiterBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for RateLimiterBuilder
impl RefUnwindSafe for RateLimiterBuilder
impl Send for RateLimiterBuilder
impl Sync for RateLimiterBuilder
impl Unpin for RateLimiterBuilder
impl UnwindSafe for RateLimiterBuilder
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
§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.