pub struct BandwidthLimit {
pub bytes_per_second: u64,
pub burst_bytes: u64,
}Expand description
Token-bucket parameters for a single bandwidth direction.
A token bucket refills at bytes_per_second tokens per second and can
hold at most burst_bytes tokens (the bucket capacity). A transfer of N
bytes is allowed when at least N tokens are available.
Fields§
§bytes_per_second: u64Sustained rate in bytes per second.
burst_bytes: u64Maximum burst size in bytes. Tokens accumulate up to this cap.
Implementations§
Source§impl BandwidthLimit
impl BandwidthLimit
Sourcepub fn new(bytes_per_second: u64, burst_bytes: u64) -> Self
pub fn new(bytes_per_second: u64, burst_bytes: u64) -> Self
Construct a new BandwidthLimit.
Sourcepub fn is_unlimited(&self) -> bool
pub fn is_unlimited(&self) -> bool
Returns true when the limit is effectively “unlimited” (rate == 0).
Trait Implementations§
Source§impl Clone for BandwidthLimit
impl Clone for BandwidthLimit
Source§fn clone(&self) -> BandwidthLimit
fn clone(&self) -> BandwidthLimit
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 BandwidthLimit
Source§impl Debug for BandwidthLimit
impl Debug for BandwidthLimit
Source§impl Default for BandwidthLimit
impl Default for BandwidthLimit
Source§impl<'de> Deserialize<'de> for BandwidthLimit
impl<'de> Deserialize<'de> for BandwidthLimit
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for BandwidthLimit
impl PartialEq for BandwidthLimit
Source§fn eq(&self, other: &BandwidthLimit) -> bool
fn eq(&self, other: &BandwidthLimit) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for BandwidthLimit
impl Serialize for BandwidthLimit
impl StructuralPartialEq for BandwidthLimit
Auto Trait Implementations§
impl Freeze for BandwidthLimit
impl RefUnwindSafe for BandwidthLimit
impl Send for BandwidthLimit
impl Sync for BandwidthLimit
impl Unpin for BandwidthLimit
impl UnsafeUnpin for BandwidthLimit
impl UnwindSafe for BandwidthLimit
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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