pub struct RateLimiterBuilder { /* private fields */ }Expand description
Builder for creating RateLimiter instances with a declarative API
Implementations§
Source§impl RateLimiterBuilder
impl RateLimiterBuilder
Sourcepub fn limit(self, limit: u64) -> Self
pub fn limit(self, limit: u64) -> Self
Set the request limit
§Example
use rateflow::RateLimiter;
let limiter = RateLimiter::builder()
.limit(100)
.build()
.unwrap();Sourcepub fn window(self, window: Window) -> Self
pub fn window(self, window: Window) -> Self
Set the time window
§Example
use rateflow::{RateLimiter, Window};
let limiter = RateLimiter::builder()
.limit(100)
.window(Window::Hour)
.build()
.unwrap();Sourcepub fn strategy(self, strategy: Strategy) -> Self
pub fn strategy(self, strategy: Strategy) -> Self
Set the rate limiting strategy
§Example
use rateflow::{RateLimiter, Strategy};
let limiter = RateLimiter::builder()
.limit(100)
.strategy(Strategy::TokenBucket)
.build()
.unwrap();Sourcepub fn add_tier(self, tier: Tier) -> Self
pub fn add_tier(self, tier: Tier) -> Self
Add a tier for multi-tier rate limiting
§Example
use rateflow::{RateLimiter, Tier, Window};
let limiter = RateLimiter::builder()
.add_tier(
Tier::new("free")
.limit(100)
.window(Window::Minute)
)
.add_tier(
Tier::new("premium")
.limit(1000)
.window(Window::Minute)
)
.build()
.unwrap();Sourcepub fn build(self) -> Result<RateLimiter>
pub fn build(self) -> Result<RateLimiter>
Build the RateLimiter
Returns an error if the configuration is invalid
Trait Implementations§
Source§impl Debug for RateLimiterBuilder
impl Debug for RateLimiterBuilder
Source§impl Default for RateLimiterBuilder
impl Default for RateLimiterBuilder
Source§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§
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