pub enum InvariantViolation {
Convergence {
agent_a: usize,
agent_b: usize,
only_in_a: Vec<u64>,
only_in_b: Vec<u64>,
},
Commutativity {
permutation_index: usize,
missing_events: Vec<u64>,
extra_events: Vec<u64>,
},
Idempotence {
event_id: u64,
events_before: Vec<u64>,
events_after_dup: Vec<u64>,
},
CausalConsistency {
observer_agent: usize,
source_agent: usize,
missing_seq: u64,
present_higher_seq: u64,
},
TriageStability {
agent_a: usize,
agent_b: usize,
score_a: f64,
score_b: f64,
diff: f64,
epsilon: f64,
},
}Expand description
Diagnostic information for a single failed invariant check.
Variants§
Convergence
Two agents have different known_events after full delivery.
Emitted by check_convergence.
Fields
Commutativity
Re-ordering event delivery produced a different final state.
Emitted by check_commutativity.
Fields
Idempotence
Re-applying an already-applied event mutated the state.
Emitted by check_idempotence.
Fields
CausalConsistency
An agent knows event (source, seq=N) but is missing (source, seq=M) where M < N.
Emitted by check_causality.
Fields
TriageStability
Triage scores diverge beyond the allowed epsilon across replicas.
Emitted by check_triage_stability.
Trait Implementations§
Source§impl Clone for InvariantViolation
impl Clone for InvariantViolation
Source§fn clone(&self) -> InvariantViolation
fn clone(&self) -> InvariantViolation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InvariantViolation
impl Debug for InvariantViolation
Source§impl PartialEq for InvariantViolation
impl PartialEq for InvariantViolation
impl StructuralPartialEq for InvariantViolation
Auto Trait Implementations§
impl Freeze for InvariantViolation
impl RefUnwindSafe for InvariantViolation
impl Send for InvariantViolation
impl Sync for InvariantViolation
impl Unpin for InvariantViolation
impl UnsafeUnpin for InvariantViolation
impl UnwindSafe for InvariantViolation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more