pub enum RPCError<NID: NodeId, N: Node, E: Error> {
Timeout(Timeout<NID>),
Unreachable(Unreachable),
PayloadTooLarge(PayloadTooLarge),
Network(NetworkError),
RemoteError(RemoteError<NID, N, E>),
}
Expand description
Error occurs when invoking a remote raft API.
Variants§
Timeout(Timeout<NID>)
Unreachable(Unreachable)
The node is temporarily unreachable and should backoff before retrying.
PayloadTooLarge(PayloadTooLarge)
The RPC payload is too large and should be split into smaller chunks.
Network(NetworkError)
Failed to send the RPC request and should retry immediately.
RemoteError(RemoteError<NID, N, E>)
Implementations§
source§impl<NID, N, E> RPCError<NID, N, RaftError<NID, E>>
impl<NID, N, E> RPCError<NID, N, RaftError<NID, E>>
sourcepub fn forward_to_leader(&self) -> Option<&ForwardToLeader<NID, N>>where
E: TryAsRef<ForwardToLeader<NID, N>>,
pub fn forward_to_leader(&self) -> Option<&ForwardToLeader<NID, N>>where
E: TryAsRef<ForwardToLeader<NID, N>>,
Return a reference to ForwardToLeader error if Self::RemoteError contains one.
Trait Implementations§
source§impl<'de, NID: NodeId, N: Node, E> Deserialize<'de> for RPCError<NID, N, E>where
E: for<'d> Deserialize<'d> + Error,
impl<'de, NID: NodeId, N: Node, E> Deserialize<'de> for RPCError<NID, N, E>where
E: for<'d> Deserialize<'d> + Error,
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>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<NID: NodeId, N: Node, E: Error> Error for RPCError<NID, N, E>
impl<NID: NodeId, N: Node, E: Error> Error for RPCError<NID, N, E>
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
source§impl<NID: NodeId, N: Node, E: Error> From<NetworkError> for RPCError<NID, N, E>
impl<NID: NodeId, N: Node, E: Error> From<NetworkError> for RPCError<NID, N, E>
source§fn from(source: NetworkError) -> Self
fn from(source: NetworkError) -> Self
Converts to this type from the input type.
source§impl<NID: NodeId, N: Node, E: Error> From<PayloadTooLarge> for RPCError<NID, N, E>
impl<NID: NodeId, N: Node, E: Error> From<PayloadTooLarge> for RPCError<NID, N, E>
source§fn from(source: PayloadTooLarge) -> Self
fn from(source: PayloadTooLarge) -> Self
Converts to this type from the input type.
source§impl<NID: NodeId, N: Node, E: Error> From<RemoteError<NID, N, E>> for RPCError<NID, N, E>
impl<NID: NodeId, N: Node, E: Error> From<RemoteError<NID, N, E>> for RPCError<NID, N, E>
source§fn from(source: RemoteError<NID, N, E>) -> Self
fn from(source: RemoteError<NID, N, E>) -> Self
Converts to this type from the input type.
source§impl<NID: NodeId, N: Node, E: Error> From<Unreachable> for RPCError<NID, N, E>
impl<NID: NodeId, N: Node, E: Error> From<Unreachable> for RPCError<NID, N, E>
source§fn from(source: Unreachable) -> Self
fn from(source: Unreachable) -> Self
Converts to this type from the input type.
source§impl<NID: PartialEq + NodeId, N: PartialEq + Node, E: PartialEq + Error> PartialEq for RPCError<NID, N, E>
impl<NID: PartialEq + NodeId, N: PartialEq + Node, E: PartialEq + Error> PartialEq for RPCError<NID, N, E>
impl<NID: Eq + NodeId, N: Eq + Node, E: Eq + Error> Eq for RPCError<NID, N, E>
impl<NID: NodeId, N: Node, E: Error> StructuralPartialEq for RPCError<NID, N, E>
Auto Trait Implementations§
impl<NID, N, E> Freeze for RPCError<NID, N, E>
impl<NID, N, E> RefUnwindSafe for RPCError<NID, N, E>
impl<NID, N, E> Send for RPCError<NID, N, E>where
E: Send,
impl<NID, N, E> Sync for RPCError<NID, N, E>where
E: Sync,
impl<NID, N, E> Unpin for RPCError<NID, N, E>
impl<NID, N, E> UnwindSafe for RPCError<NID, N, E>
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