Struct leaky_bucket::Builder
source · pub struct Builder { /* private fields */ }
Expand description
A builder for a RateLimiter
.
Implementations§
source§impl Builder
impl Builder
sourcepub fn initial(&mut self, initial: usize) -> &mut Self
pub fn initial(&mut self, initial: usize) -> &mut Self
Configure the initial number of tokens to configure. The default value
is 0
.
Examples
use leaky_bucket::RateLimiter;
let limiter = RateLimiter::builder()
.initial(10)
.build();
sourcepub fn interval(&mut self, interval: Duration) -> &mut Self
pub fn interval(&mut self, interval: Duration) -> &mut Self
Configure the time duration between which we add refill
number to
the bucket rate limiter.
Panics
This panics if the provided interval does not fit within the millisecond bounds of a usize or is zero.
ⓘ
use leaky_bucket::RateLimiter;
use std::time;
let limiter = RateLimiter::builder()
.interval(time::Duration::from_secs(u64::MAX))
.build();
ⓘ
use leaky_bucket::RateLimiter;
use std::time;
let limiter = RateLimiter::builder()
.interval(time::Duration::from_millis(0))
.build();
Examples
use leaky_bucket::RateLimiter;
use std::time;
let limiter = RateLimiter::builder()
.interval(time::Duration::from_millis(100))
.build();
sourcepub fn fair(&mut self, fair: bool) -> &mut Self
pub fn fair(&mut self, fair: bool) -> &mut Self
Configure the rate limiter to be fair. By default the rate limiter is fair which ensures that all tasks make steady progress even under contention. But an unfair scheduler might have a higher total throughput.
Examples
use leaky_bucket::RateLimiter;
let limiter = RateLimiter::builder()
.refill(100)
.fair(false)
.build();
sourcepub fn build(&self) -> RateLimiter
pub fn build(&self) -> RateLimiter
Construct a new RateLimiter
.
Examples
use leaky_bucket::RateLimiter;
use std::time;
let limiter = RateLimiter::builder()
.refill(100)
.interval(time::Duration::from_millis(200))
.max(10_000)
.build();
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
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