diff options
Diffstat (limited to 'src/modules/delay.rs')
-rw-r--r-- | src/modules/delay.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/delay.rs b/src/modules/delay.rs index 5b5ce06..31036fe 100644 --- a/src/modules/delay.rs +++ b/src/modules/delay.rs @@ -17,7 +17,7 @@ pub struct DelayKind; #[derive(Deserialize)] struct Delay { duration: u64, - stdev: u64, + stdev: Option<u64>, next: DynNode, } @@ -36,11 +36,12 @@ impl Node for Delay { request: NodeRequest, ) -> Pin<Box<dyn Future<Output = Result<NodeResponse, ServiceError>> + Send + Sync + 'a>> { Box::pin(async move { - sleep(Duration::from_millis(if self.stdev == 0 { + let stdev = self.stdev.unwrap_or_default(); + sleep(Duration::from_millis(if stdev == 0 { self.duration } else { self.duration.saturating_add_signed( - rand_distr::Normal::new(0., self.stdev as f32) + rand_distr::Normal::new(0., stdev as f32) .unwrap() .sample(&mut rand::rng()) as i64, ) |