pub struct AppendEntriesResponse {
pub rejected_by: Option<Vote>,
pub conflict: bool,
pub last_log_id: Option<LogId>,
}Fields§
§rejected_by: Option<Vote>If not None, the follower rejected the AppendEntries request due to having a higher vote.
All other fields are valid only when this field is None.
conflict: boolThe follower accepts this AppendEntries request’s vote, but the prev_log_id conflicts with the follower’s log. The leader should retry with a smaller prev_log_id that matches the follower’s log.
For unary AppendEntries, last_log_id is not used for conflicts.
For StreamAppend (pipeline replication), last_log_id carries the conflict log id.
last_log_id: Option<LogId>If conflict = false, the last log id the follower accepted from this request:
- None: all input entries were accepted and persisted.
- Some: partial success; only entries up to and including this id were accepted.
If conflict = true in StreamAppend, this is the conflict log id.
Trait Implementations§
Source§impl Clone for AppendEntriesResponse
impl Clone for AppendEntriesResponse
Source§fn clone(&self) -> AppendEntriesResponse
fn clone(&self) -> AppendEntriesResponse
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 AppendEntriesResponse
impl Debug for AppendEntriesResponse
Source§impl Default for AppendEntriesResponse
impl Default for AppendEntriesResponse
Source§impl From<AppendEntriesResponse<TypeConfig>> for AppendEntriesResponse
impl From<AppendEntriesResponse<TypeConfig>> for AppendEntriesResponse
Source§fn from(r: AppendEntriesResponse<TypeConfig>) -> Self
fn from(r: AppendEntriesResponse<TypeConfig>) -> Self
Converts to this type from the input type.
Source§impl From<AppendEntriesResponse> for AppendEntriesResponse<TypeConfig>
impl From<AppendEntriesResponse> for AppendEntriesResponse<TypeConfig>
Source§fn from(r: AppendEntriesResponse) -> Self
fn from(r: AppendEntriesResponse) -> Self
Converts to this type from the input type.
Source§impl From<Result<Option<LogId<TypeConfig>>, StreamAppendError<TypeConfig>>> for AppendEntriesResponse
impl From<Result<Option<LogId<TypeConfig>>, StreamAppendError<TypeConfig>>> for AppendEntriesResponse
Source§fn from(result: StreamAppendResult<TypeConfig>) -> Self
fn from(result: StreamAppendResult<TypeConfig>) -> Self
Converts to this type from the input type.
Source§impl Hash for AppendEntriesResponse
impl Hash for AppendEntriesResponse
Source§impl Message for AppendEntriesResponse
impl Message for AppendEntriesResponse
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes an instance of the message from a buffer, and merges it into
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.Source§impl PartialEq for AppendEntriesResponse
impl PartialEq for AppendEntriesResponse
impl Copy for AppendEntriesResponse
impl Eq for AppendEntriesResponse
impl StructuralPartialEq for AppendEntriesResponse
Auto Trait Implementations§
impl Freeze for AppendEntriesResponse
impl RefUnwindSafe for AppendEntriesResponse
impl Send for AppendEntriesResponse
impl Sync for AppendEntriesResponse
impl Unpin for AppendEntriesResponse
impl UnsafeUnpin for AppendEntriesResponse
impl UnwindSafe for AppendEntriesResponse
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
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§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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> 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