Skip to main content

FindCoherent

Trait FindCoherent 

Source
pub trait FindCoherent<ID, Other>
where ID: PartialOrd + Ord + 'static, Self: QuorumSet<Id = ID>, Other: QuorumSet<Id = ID>,
{ // Required method fn find_coherent(&self, other: Other) -> Self; }
Expand description

Finds an intermediate quorum set coherent with both source and target quorum sets.

Required Methods§

Source

fn find_coherent(&self, other: Other) -> Self

Build a quorum set X so that self is coherent with X and X is coherent with other, i.e., self ~ X ~ other.

Then X is the intermediate quorum set when changing membership from self to other.

E.g.(cᵢcⱼ is a joint of cᵢ and cⱼ):

  • c₁.find_coherent(c₁) returns c₁
  • c₁.find_coherent(c₂) returns c₁c₂
  • c₁c₂.find_coherent(c₂) returns c₂
  • c₁c₂.find_coherent(c₁) returns c₁
  • c₁c2.find_coherent(c₃) returns c₂c₃

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<NID> FindCoherent<NID, BTreeSet<NID>> for Vec<BTreeSet<NID>>
where NID: PartialOrd + Ord + Clone + 'static,

Builds an intermediate joint quorum set for a target flat config.

Source§

fn find_coherent(&self, other: BTreeSet<NID>) -> Self

Implementors§