pub struct ClientResponse {
pub error: i32,
pub metadata: Option<ErrorMetadata>,
pub success_result: Option<SuccessResult>,
}Fields§
§error: i32§metadata: Option<ErrorMetadata>§success_result: Option<SuccessResult>Implementations§
Source§impl ClientResponse
impl ClientResponse
Sourcepub fn write_success() -> Self
pub fn write_success() -> Self
Sourcepub fn cas_success() -> Self
pub fn cas_success() -> Self
Build CAS success response (comparison succeeded, value updated)
§Returns
Response with Success code and result=true (CAS succeeded)
Sourcepub fn cas_failure() -> Self
pub fn cas_failure() -> Self
Build CAS failure response (comparison failed, value NOT updated)
§Returns
Response with Success code and result=false (CAS failed due to mismatch)
Sourcepub fn succeeded(&self) -> bool
pub fn succeeded(&self) -> bool
Check if operation completed without error
§Returns
trueif no error occurred (operation executed)falseif error occurred or invalid response
Sourcepub fn is_write_success(&self) -> bool
pub fn is_write_success(&self) -> bool
Check if write operation succeeded with true result
Strict check for Put/Delete operations ensuring result is true. For CAS, use pattern matching to distinguish true/false results.
§Returns
truefor successful Put/Delete (result must be true)falseotherwise
Sourcepub fn read_results(results: Vec<ClientResult>) -> Self
pub fn read_results(results: Vec<ClientResult>) -> Self
Sourcepub fn client_error(error_code: ErrorCode) -> Self
pub fn client_error(error_code: ErrorCode) -> Self
Build generic error response for any operation type
§Parameters
error_code: Predefined client request error code
Sourcepub fn not_leader(
leader_id: Option<String>,
leader_address: Option<String>,
) -> Self
pub fn not_leader( leader_id: Option<String>, leader_address: Option<String>, ) -> Self
Build NOT_LEADER error response with leader metadata
§Parameters
leader_id: Optional leader node IDleader_address: Optional leader address
Sourcepub fn is_term_outdated(&self) -> bool
pub fn is_term_outdated(&self) -> bool
Check if this response indicates the leader’s term is outdated
Sourcepub fn is_quorum_timeout_or_failure(&self) -> bool
pub fn is_quorum_timeout_or_failure(&self) -> bool
Check if this response indicates a quorum timeout or failure to receive majority responses
Sourcepub fn is_propose_failure(&self) -> bool
pub fn is_propose_failure(&self) -> bool
Check if this response indicates a failure to receive majority responses
Sourcepub fn is_retry_required(&self) -> bool
pub fn is_retry_required(&self) -> bool
Check if this response indicates a a retry required
Trait Implementations§
Source§impl Clone for ClientResponse
impl Clone for ClientResponse
Source§fn clone(&self) -> ClientResponse
fn clone(&self) -> ClientResponse
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClientResponse
impl Debug for ClientResponse
Source§impl Default for ClientResponse
impl Default for ClientResponse
Source§impl<'de> Deserialize<'de> for ClientResponse
impl<'de> Deserialize<'de> for ClientResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Message for ClientResponse
impl Message for ClientResponse
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
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,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
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,
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,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
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,
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,
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,
self.Source§impl PartialEq for ClientResponse
impl PartialEq for ClientResponse
Source§impl Serialize for ClientResponse
impl Serialize for ClientResponse
impl StructuralPartialEq for ClientResponse
Auto Trait Implementations§
impl Freeze for ClientResponse
impl RefUnwindSafe for ClientResponse
impl Send for ClientResponse
impl Sync for ClientResponse
impl Unpin for ClientResponse
impl UnsafeUnpin for ClientResponse
impl UnwindSafe for ClientResponse
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
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request