pub enum RefusalReason {
WatermarkNotCovered {
candidate_lsn: u64,
watermark: u64,
},
AlreadyVoted {
term: u64,
voted_for: String,
},
StaleTerm {
candidate_term: u64,
voter_term: u64,
},
}Expand description
Why a voter refused a candidate.
Variants§
WatermarkNotCovered
The candidate’s log does not cover the commit watermark, so an acknowledged synchronous write could be lost — the safety core refuses (requirement 3).
AlreadyVoted
The candidate’s term is not newer than a term this voter already participated in, and the voter already granted that term to someone else (durable double-vote guard, requirement 2).
StaleTerm
The candidate’s term is older than the voter’s current term — a stale candidate from a superseded term.
Trait Implementations§
Source§impl Clone for RefusalReason
impl Clone for RefusalReason
Source§fn clone(&self) -> RefusalReason
fn clone(&self) -> RefusalReason
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 RefusalReason
impl Debug for RefusalReason
impl Eq for RefusalReason
Source§impl PartialEq for RefusalReason
impl PartialEq for RefusalReason
Source§fn eq(&self, other: &RefusalReason) -> bool
fn eq(&self, other: &RefusalReason) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RefusalReason
Auto Trait Implementations§
impl Freeze for RefusalReason
impl RefUnwindSafe for RefusalReason
impl Send for RefusalReason
impl Sync for RefusalReason
impl Unpin for RefusalReason
impl UnsafeUnpin for RefusalReason
impl UnwindSafe for RefusalReason
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request