pub struct LeakyBucketRateLimiter {
pub refill: usize,
pub interval: Duration,
pub max: usize,
pub balance: usize,
/* private fields */
}Expand description
A basic leaky-bucket rate limiter. This is a synchronous implementation with no interior locking since it’s only used by the RateLimitedRouter uniquely and doesn’t share its state
Fields§
§refill: usizeTokens to add every per duration.
interval: DurationInterval in milliseconds to add tokens.
max: usizeMax number of tokens associated with the rate limiter.
balance: usizeThe “balance” of the rate limiter, i.e. the number of tokens still available
Implementations§
Source§impl LeakyBucketRateLimiter
impl LeakyBucketRateLimiter
Sourcepub fn builder() -> LeakyBucketRateLimiterBuilder
pub fn builder() -> LeakyBucketRateLimiterBuilder
Create a new LeakyBucketRateLimiter instance
refill- Tokens to add everyperduration.interval- Interval to add tokens.max- The maximum number of tokens associated with the rate limiter. Default = MAX_LB_BALANCEinitial- The initial starting balance. If None will be = to max
Returns a new LeakyBucketRateLimiter instance
Trait Implementations§
Source§impl Debug for LeakyBucketRateLimiter
impl Debug for LeakyBucketRateLimiter
Auto Trait Implementations§
impl Freeze for LeakyBucketRateLimiter
impl RefUnwindSafe for LeakyBucketRateLimiter
impl Send for LeakyBucketRateLimiter
impl Sync for LeakyBucketRateLimiter
impl Unpin for LeakyBucketRateLimiter
impl UnsafeUnpin for LeakyBucketRateLimiter
impl UnwindSafe for LeakyBucketRateLimiter
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage