pub struct PeerBucket {
pub peer_id: String,
pub upload_tokens: f64,
pub download_tokens: f64,
pub last_refill: u64,
pub quota: BandwidthQuota,
pub bytes_used_up: u64,
pub bytes_used_down: u64,
}Expand description
Token-bucket state for a single peer.
Timestamps (last_refill) are in milliseconds and can be any
monotonically-increasing integer (e.g. milliseconds since UNIX epoch, or
from a test counter).
Fields§
§peer_id: StringUnique peer identifier.
upload_tokens: f64Available upload tokens (bytes). May not exceed the burst cap.
download_tokens: f64Available download tokens (bytes). May not exceed the burst cap.
last_refill: u64Timestamp (ms) of the last token-refill.
quota: BandwidthQuotaPer-peer quota configuration.
bytes_used_up: u64Cumulative upload bytes consumed (granted) since registration.
bytes_used_down: u64Cumulative download bytes consumed (granted) since registration.
Trait Implementations§
Source§impl Clone for PeerBucket
impl Clone for PeerBucket
Source§fn clone(&self) -> PeerBucket
fn clone(&self) -> PeerBucket
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 moreAuto Trait Implementations§
impl Freeze for PeerBucket
impl RefUnwindSafe for PeerBucket
impl Send for PeerBucket
impl Sync for PeerBucket
impl Unpin for PeerBucket
impl UnsafeUnpin for PeerBucket
impl UnwindSafe for PeerBucket
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more