pub struct TokenBucket { /* private fields */ }Expand description
Token bucket rate limiter for send pacing.
Allows bursts up to bucket_capacity bytes, then throttles
to refill_rate_bps sustained rate.
Implementations§
Source§impl TokenBucket
impl TokenBucket
Sourcepub fn new(config: FlowConfig) -> Self
pub fn new(config: FlowConfig) -> Self
Create a new token bucket with the given configuration.
Sourcepub fn try_consume(&mut self, n: usize) -> bool
pub fn try_consume(&mut self, n: usize) -> bool
Try to consume n tokens. Returns true if allowed, false if rate-limited.
Sourcepub fn wait_duration(&mut self, n: usize) -> Duration
pub fn wait_duration(&mut self, n: usize) -> Duration
How long to wait before n tokens are available.
Auto Trait Implementations§
impl Freeze for TokenBucket
impl RefUnwindSafe for TokenBucket
impl Send for TokenBucket
impl Sync for TokenBucket
impl Unpin for TokenBucket
impl UnwindSafe for TokenBucket
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