pub struct QuorumPolicy {
pub min_peers: usize,
pub commit_threshold: f64,
pub timeout: Duration,
}Expand description
Policy parameters governing when a round can proceed to aggregation.
Fields§
§min_peers: usizeMinimum number of peers that must vote for quorum to be considered.
commit_threshold: f64Fraction of votes (0.0–1.0) that must be Commit for the round to
commit. E.g. 0.67 means at least 67 % of votes must be Commit.
timeout: DurationMaximum time allowed before the round is automatically timed out.
Implementations§
Source§impl QuorumPolicy
impl QuorumPolicy
Sourcepub fn check(&self, votes: &[PeerVote], elapsed: Duration) -> QuorumResult
pub fn check(&self, votes: &[PeerVote], elapsed: Duration) -> QuorumResult
Evaluate the current vote set and elapsed time against this policy.
votes is the full slice of votes cast so far.
elapsed is the time since the round started.
Trait Implementations§
Source§impl Clone for QuorumPolicy
impl Clone for QuorumPolicy
Source§fn clone(&self) -> QuorumPolicy
fn clone(&self) -> QuorumPolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 QuorumPolicy
impl Debug for QuorumPolicy
Auto Trait Implementations§
impl Freeze for QuorumPolicy
impl RefUnwindSafe for QuorumPolicy
impl Send for QuorumPolicy
impl Sync for QuorumPolicy
impl Unpin for QuorumPolicy
impl UnsafeUnpin for QuorumPolicy
impl UnwindSafe for QuorumPolicy
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more