Module duplicate

Module duplicate 

Source
Expand description

This module contains some predefined duplicate trace models.

Enabled with feature duplicate-model or model.

§Predefined models

§Examples

An example to build model from configuration:

let mut static_duplicate = StaticDuplicateConfig::new()
    .duplicate(vec![0.1, 0.2])
    .duration(Duration::from_secs(1))
    .build();
assert_eq!(static_duplicate.next_duplicate(), Some((vec![0.1, 0.2], Duration::from_secs(1))));
assert_eq!(static_duplicate.next_duplicate(), None);

A more common use case is to build model from a configuration file (e.g. json file):

// The content would be "{\"RepeatedDuplicatePatternConfig\":{\"pattern\":[{\"StaticDuplicateConfig\":{\"duplicate\":[0.1,0.2],\"duration\":{\"secs\":1,\"nanos\":0}}},{\"StaticDuplicateConfig\":{\"duplicate\":[0.2,0.4],\"duration\":{\"secs\":1,\"nanos\":0}}}],\"count\":2}}"
// if the `human` feature is not enabled.
let config_file_content = "{\"RepeatedDuplicatePatternConfig\":{\"pattern\":[{\"StaticDuplicateConfig\":{\"duplicate\":[0.1,0.2],\"duration\":{\"secs\":1,\"nanos\":0}}},{\"StaticDuplicateConfig\":{\"duplicate\":[0.2,0.4],\"duration\":{\"secs\":1,\"nanos\":0}}}],\"count\":2}}";
let des: Box<dyn DuplicateTraceConfig> = serde_json::from_str(config_file_content).unwrap();
let mut model = des.into_model();
assert_eq!(
    model.next_duplicate(),
    Some((vec![0.1, 0.2], Duration::from_secs(1)))
);
assert_eq!(
    model.next_duplicate(),
    Some((vec![0.2, 0.4], Duration::from_secs(1)))
);
assert_eq!(
    model.next_duplicate(),
    Some((vec![0.1, 0.2], Duration::from_secs(1)))
);
assert_eq!(
    model.next_duplicate(),
    Some((vec![0.2, 0.4], Duration::from_secs(1)))
);
assert_eq!(model.next_duplicate(), None);

Structs§

RepeatedDuplicatePattern
The model contains an array of duplicate trace models.
RepeatedDuplicatePatternConfig
The configuration struct for RepeatedDuplicatePattern.
StaticDuplicate
The model of a static duplicate trace.
StaticDuplicateConfig
The configuration struct for StaticDuplicate

Traits§

DuplicateTraceConfig
This trait is used to convert a duplicate trace configuration into a duplicate trace model.