pub struct ToleranceSpec { /* private fields */ }Expand description
Declared tolerance for one invariant (R2.3): tolerates N consecutive unhealthy samples and/or unconfirmed for duration D.
There is NO default tolerance — the constructors are the only way to build one, and each requires an explicit declaration. Deserialization re-validates through the same constructors, so a stored record cannot smuggle an undeclared tolerance back in.
Implementations§
Source§impl ToleranceSpec
impl ToleranceSpec
Sourcepub const fn count(windows: u64) -> Self
pub const fn count(windows: u64) -> Self
Count form: tolerates windows consecutive unhealthy samples; the
(windows + 1)-th consecutive unhealthy sample exceeds tolerance.
Zero is a legitimate DECLARED value (alarm on the first unhealthy
sample) — what is refused is absence, never zero.
Sourcepub const fn duration(
unconfirmed_for: Duration,
) -> Result<Self, WorkloopSpecError>
pub const fn duration( unconfirmed_for: Duration, ) -> Result<Self, WorkloopSpecError>
Duration form: alarms once the invariant has gone unconfirmed for
unconfirmed_for — the only form evaluable engine-side with zero
samples (R2.4a).
§Errors
Refuses a zero duration (WorkloopSpecError::ToleranceZeroDuration).
Sourcepub const fn both(
windows: u64,
unconfirmed_for: Duration,
) -> Result<Self, WorkloopSpecError>
pub const fn both( windows: u64, unconfirmed_for: Duration, ) -> Result<Self, WorkloopSpecError>
Both forms together: the count form may be declared in addition to the duration form, never instead (R2.4a).
§Errors
Refuses a zero duration (WorkloopSpecError::ToleranceZeroDuration).
Sourcepub const fn consecutive_windows(&self) -> Option<u64>
pub const fn consecutive_windows(&self) -> Option<u64>
The declared count form, when present.
Sourcepub const fn unconfirmed_for(&self) -> Option<Duration>
pub const fn unconfirmed_for(&self) -> Option<Duration>
The declared duration form, when present.
Trait Implementations§
Source§impl Clone for ToleranceSpec
impl Clone for ToleranceSpec
Source§fn clone(&self) -> ToleranceSpec
fn clone(&self) -> ToleranceSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more