pub struct ChaosConfig { /* private fields */ }Expand description
Configuration controlling how a ChaosEventStore injects failures.
A ChaosConfig holds an optional deterministic seed plus the probabilities
of injecting store failures and version conflicts. The probabilities default
to 0.0 (no injection); use the builder methods to raise them.
Start from either ChaosConfig::default (random seed, no injection) or
ChaosConfig::deterministic (fixed seed for reproducible runs), then chain
with_failure_probability and
with_version_conflict_probability.
use eventcore_testing::chaos::ChaosConfig;
let config = ChaosConfig::deterministic()
.with_failure_probability(0.25)
.with_version_conflict_probability(0.1);Implementations§
Source§impl ChaosConfig
impl ChaosConfig
Sourcepub fn deterministic() -> Self
pub fn deterministic() -> Self
Creates a config with a fixed seed so injected failures are reproducible.
The failure and version-conflict probabilities still default to 0.0;
chain with_failure_probability
and
with_version_conflict_probability
to enable injection.
Sourcepub fn with_failure_probability(self, probability: f32) -> Self
pub fn with_failure_probability(self, probability: f32) -> Self
Sets the probability of injecting a store failure on reads and appends.
probability is clamped to the [0.0, 1.0] range, where 0.0 never
injects a failure and 1.0 always does.
Sourcepub fn with_version_conflict_probability(self, probability: f32) -> Self
pub fn with_version_conflict_probability(self, probability: f32) -> Self
Sets the probability of injecting a version conflict on appends.
probability is clamped to the [0.0, 1.0] range, where 0.0 never
injects a conflict and 1.0 always does.
Trait Implementations§
Source§impl Clone for ChaosConfig
impl Clone for ChaosConfig
Source§fn clone(&self) -> ChaosConfig
fn clone(&self) -> ChaosConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more