Expand description
This module contains some predefined delay trace models.
Enabled with feature delay-model or model.
§Predefined models
StaticDelay: A trace model with static delay.RepeatedDelayPattern: A trace model with a repeated delay pattern.
§Examples
An example to build model from configuration:
let mut static_delay = StaticDelayConfig::new()
.delay(Delay::from_millis(10))
.duration(Duration::from_secs(1))
.build();
assert_eq!(static_delay.next_delay(), Some((Delay::from_millis(10), Duration::from_secs(1))));
assert_eq!(static_delay.next_delay(), None);A more common use case is to build model from a configuration file (e.g. json file):
// The content would be "{\"RepeatedDelayPatternConfig\":{\"pattern\":[{\"StaticDelayConfig\":{\"delay\":{\"secs\":0,\"nanos\":10000000},\"duration\":{\"secs\":1,\"nanos\":0}}},{\"StaticDelayConfig\":{\"delay\":{\"secs\":0,\"nanos\":20000000},\"duration\":{\"secs\":1,\"nanos\":0}}}],\"count\":2}}"
// if the `human` feature is not enabled.
let config_file_content = "{\"RepeatedDelayPatternConfig\":{\"pattern\":[{\"StaticDelayConfig\":{\"delay\":{\"secs\":0,\"nanos\":10000000},\"duration\":{\"secs\":1,\"nanos\":0}}},{\"StaticDelayConfig\":{\"delay\":{\"secs\":0,\"nanos\":20000000},\"duration\":{\"secs\":1,\"nanos\":0}}}],\"count\":2}}";
let des: Box<dyn DelayTraceConfig> = serde_json::from_str(config_file_content).unwrap();
let mut model = des.into_model();
assert_eq!(
model.next_delay(),
Some((Delay::from_millis(10), Duration::from_secs(1)))
);
assert_eq!(
model.next_delay(),
Some((Delay::from_millis(20), Duration::from_secs(1)))
);
assert_eq!(
model.next_delay(),
Some((Delay::from_millis(10), Duration::from_secs(1)))
);
assert_eq!(
model.next_delay(),
Some((Delay::from_millis(20), Duration::from_secs(1)))
);
assert_eq!(model.next_delay(), None);Structs§
- Repeated
Delay Pattern - The model contains an array of delay trace models.
- Repeated
Delay Pattern Config - The configuration struct for
RepeatedDelayPattern. - Static
Delay - The model of a static delay trace.
- Static
Delay Config - The configuration struct for
StaticDelay.
Traits§
- Delay
Trace Config - This trait is used to convert a delay trace configuration into a delay trace model.