pub struct TokenBucket { /* private fields */ }Expand description
A token bucket: it earns a number of tokens an hour up to its size, and a relay spends one on each message it lets through.
Implementations§
Source§impl TokenBucket
impl TokenBucket
Sourcepub const fn new(reload_rate: u8, size: u16) -> TokenBucket
pub const fn new(reload_rate: u8, size: u16) -> TokenBucket
Sourcepub const fn coded(
reload_rate: u8,
bucket_size: u8,
unlimited: u8,
) -> TokenBucket
pub const fn coded( reload_rate: u8, bucket_size: u8, unlimited: u8, ) -> TokenBucket
A bucket as a relay command codes it, starting full.
§Arguments
reload_rate- tokens earned an hour, orunlimitedfor no limit.bucket_size- the coded size multiplier, TS011-1.0.1 table 55; only its low two bits are read.unlimited- the rate that means no limit:UNLIMITED_DEVICE_RATEorUNLIMITED_RELAY_RATE.
§Returns
The bucket.
Sourcepub const fn unlimited() -> TokenBucket
pub const fn unlimited() -> TokenBucket
Sourcepub const fn reload_rate(&self) -> Option<u8>
pub const fn reload_rate(&self) -> Option<u8>
Sourcepub const fn disabled(&self) -> bool
pub const fn disabled(&self) -> bool
Reports whether the bucket is empty and never refills, which a relay reports as forwarding disabled.
§Returns
true for an empty bucket that earns nothing.
Sourcepub fn reload(&mut self, hours: u64)
pub fn reload(&mut self, hours: u64)
Adds what the bucket earns over some hours, keeping no more than its size.
§Arguments
hours- the whole hours since the last reload.
Sourcepub fn set_tokens(&mut self, tokens: u16)
pub fn set_tokens(&mut self, tokens: u16)
Sourcepub fn refill_one_hour(&mut self)
pub fn refill_one_hour(&mut self)
Sets the tokens to one hour’s reload, as a relay does when it starts scanning.
Trait Implementations§
Source§impl Clone for TokenBucket
impl Clone for TokenBucket
Source§fn clone(&self) -> TokenBucket
fn clone(&self) -> TokenBucket
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for TokenBucket
Source§impl Debug for TokenBucket
impl Debug for TokenBucket
impl Eq for TokenBucket
Source§impl Hash for TokenBucket
impl Hash for TokenBucket
Source§impl PartialEq for TokenBucket
impl PartialEq for TokenBucket
impl StructuralPartialEq for TokenBucket
Auto Trait Implementations§
impl Freeze for TokenBucket
impl RefUnwindSafe for TokenBucket
impl Send for TokenBucket
impl Sync for TokenBucket
impl Unpin for TokenBucket
impl UnsafeUnpin 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