pub struct ThrottleConfig {
pub max_upload_bytes_per_sec: Option<u64>,
pub max_download_bytes_per_sec: Option<u64>,
pub burst_size_bytes: Option<u64>,
pub enabled: bool,
pub refill_interval: Duration,
}Expand description
Configuration for bandwidth throttling
Fields§
§max_upload_bytes_per_sec: Option<u64>Maximum bytes per second for upload (None = unlimited)
max_download_bytes_per_sec: Option<u64>Maximum bytes per second for download (None = unlimited)
burst_size_bytes: Option<u64>Burst size in bytes (allows temporary exceeding of rate limit) Default: 2x the per-second limit
enabled: boolWhether throttling is enabled
refill_interval: DurationRefill interval for token bucket (smaller = more granular)
Implementations§
Source§impl ThrottleConfig
impl ThrottleConfig
Sourcepub fn mobile() -> Self
pub fn mobile() -> Self
Create a configuration for mobile/cellular networks Limits: 1 MB/s upload, 5 MB/s download
Sourcepub fn iot() -> Self
pub fn iot() -> Self
Create a configuration for IoT/edge devices with limited bandwidth Limits: 128 KB/s upload, 512 KB/s download
Sourcepub fn low_power() -> Self
pub fn low_power() -> Self
Create a configuration for low-power mode Very conservative limits: 64 KB/s upload, 256 KB/s download
Sourcepub fn validate(&self) -> Result<(), ThrottleError>
pub fn validate(&self) -> Result<(), ThrottleError>
Validate the configuration
Trait Implementations§
Source§impl Clone for ThrottleConfig
impl Clone for ThrottleConfig
Source§fn clone(&self) -> ThrottleConfig
fn clone(&self) -> ThrottleConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ThrottleConfig
impl Debug for ThrottleConfig
Auto Trait Implementations§
impl Freeze for ThrottleConfig
impl RefUnwindSafe for ThrottleConfig
impl Send for ThrottleConfig
impl Sync for ThrottleConfig
impl Unpin for ThrottleConfig
impl UnwindSafe for ThrottleConfig
Blanket Implementations§
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
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