pub enum Jitter {
None,
Factor(f64),
}Expand description
Jitter applied after a base crate::Delay has been calculated.
The current implementation supports no jitter and symmetric factor-based jitter. Factor jitter keeps the lower bound at zero to avoid negative durations after randomization.
Variants§
Implementations§
Source§impl Jitter
impl Jitter
Sourcepub fn none() -> Jitter
pub fn none() -> Jitter
Creates a no-jitter strategy.
§Parameters
This function has no parameters.
§Returns
A Jitter::None strategy.
§Errors
This function does not return errors.
Sourcepub fn factor(factor: f64) -> Jitter
pub fn factor(factor: f64) -> Jitter
Creates a symmetric relative jitter strategy.
Validation requires factor to be finite and within [0.0, 1.0].
§Parameters
factor: Relative jitter range. For example,0.2samples frombase +/- 20%.
§Returns
A Jitter::Factor strategy.
§Errors
This constructor does not validate factor; use Jitter::validate
before applying values that come from configuration or user input.
Sourcepub fn apply(&self, base: Duration) -> Duration
pub fn apply(&self, base: Duration) -> Duration
Applies jitter to a base delay.
A zero base delay is returned unchanged. Factor jitter samples a value
from the inclusive range [-base * factor, base * factor].
§Parameters
base: Base delay calculated bycrate::Delay.
§Returns
The jittered delay, never below zero.
§Errors
This function does not return errors.
§Panics
May panic if a Jitter::Factor value has not been validated and the
factor is non-finite, because the random range cannot be sampled.
Sourcepub fn validate(&self) -> Result<(), String>
pub fn validate(&self) -> Result<(), String>
Validates jitter parameters.
Returns a human-readable message when the factor is negative, greater
than 1.0, NaN, or infinite.
§Returns
Ok(()) when the jitter configuration is usable.
§Parameters
This method has no parameters.
§Errors
Returns an error when the factor is negative, greater than 1.0, NaN,
or infinite.