flare_zrpc/
error.rs

1use std::error::Error;
2
3use anyerror::AnyError;
4
5#[derive(serde::Serialize, serde::Deserialize, Clone)]
6pub enum Infallible {}
7
8#[derive(thiserror::Error, Debug)]
9pub enum ZrpcError<E = Infallible> {
10    #[error("connection error: {0}")]
11    ConnectionError(#[from] Box<dyn Error + Send + Sync>),
12    #[error("encode error: {0}")]
13    EncodeError(AnyError),
14    #[error("decode error: {0}")]
15    DecodeError(AnyError),
16    #[error("server error: {0}")]
17    ServerSystemError(ZrpcSystemError),
18    #[error("No quaryable target (sender dropped)")]
19    SenderDropped(#[from] flume::RecvError),
20    #[error("app error: {0}")]
21    AppError(E),
22}
23
24#[derive(
25    thiserror::Error, serde::Serialize, serde::Deserialize, Clone, Debug,
26)]
27pub enum ZrpcServerError<E> {
28    #[error("app error: {0}")]
29    AppError(E),
30    #[error("system error: {0}")]
31    SystemError(ZrpcSystemError),
32}
33
34#[derive(
35    thiserror::Error, serde::Serialize, serde::Deserialize, Clone, Debug,
36)]
37pub enum ZrpcSystemError {
38    #[error("decode error: {0}")]
39    DecodeError(anyerror::AnyError),
40    #[error("encode error: {0}")]
41    EncodeError(anyerror::AnyError),
42}