pub struct TimeoutConfig {
pub backoff: BackoffInterval,
pub quantile: f64,
pub safety_factor: f64,
}Expand description
Configuration for AdaptiveTimeout.
The struct fits in 24 bytes.
§Example
use adaptive_timeout::TimeoutConfig;
let config = TimeoutConfig {
quantile: 0.999,
safety_factor: 3.0,
..TimeoutConfig::default()
};Fields§
§backoff: BackoffIntervalTimeout floor and ceiling. Default: 250ms..1min.
quantile: f64Quantile of the latency distribution to use (e.g. 0.9999 for P99.99). Default: 0.9999.
safety_factor: f64Multiplier applied to the quantile estimate. A factor of 2.0 means the timeout is twice the observed quantile. Default: 2.0.
Implementations§
Source§impl TimeoutConfig
impl TimeoutConfig
Sourcepub fn min_timeout(&self) -> Duration
pub fn min_timeout(&self) -> Duration
Returns the minimum timeout as a Duration.
Sourcepub fn max_timeout(&self) -> Duration
pub fn max_timeout(&self) -> Duration
Returns the maximum timeout as a Duration.
Trait Implementations§
Source§impl Clone for TimeoutConfig
impl Clone for TimeoutConfig
Source§fn clone(&self) -> TimeoutConfig
fn clone(&self) -> TimeoutConfig
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 TimeoutConfig
impl Debug for TimeoutConfig
Source§impl Default for TimeoutConfig
impl Default for TimeoutConfig
Source§impl From<BackoffInterval> for TimeoutConfig
Convert a BackoffInterval into a TimeoutConfig.
impl From<BackoffInterval> for TimeoutConfig
Convert a BackoffInterval into a TimeoutConfig.
Quantile and safety factor remain at defaults.
Source§fn from(backoff: BackoffInterval) -> Self
fn from(backoff: BackoffInterval) -> Self
Converts to this type from the input type.
Source§impl FromStr for TimeoutConfig
Parse a TimeoutConfig from a duration-range string.
impl FromStr for TimeoutConfig
Parse a TimeoutConfig from a duration-range string.
The string is parsed as a BackoffInterval; quantile and
safety_factor are left at their defaults.
§Example
use adaptive_timeout::TimeoutConfig;
let cfg: TimeoutConfig = "10ms..60s".parse().unwrap();
assert_eq!(cfg.backoff.min_ms.get(), 10);
assert_eq!(cfg.backoff.max_ms.get(), 60_000);
assert_eq!(cfg.quantile, 0.9999);
assert_eq!(cfg.safety_factor, 2.0);impl Copy for TimeoutConfig
Auto Trait Implementations§
impl Freeze for TimeoutConfig
impl RefUnwindSafe for TimeoutConfig
impl Send for TimeoutConfig
impl Sync for TimeoutConfig
impl Unpin for TimeoutConfig
impl UnsafeUnpin for TimeoutConfig
impl UnwindSafe for TimeoutConfig
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