pb_mapper_client/server/
error.rs1use std::time::Duration;
2
3use snafu::Snafu;
4
5use pb_mapper_core as common;
8
9#[derive(Debug, Snafu)]
10#[snafu(visibility(pub(super)))]
11pub enum Error {
12 #[snafu(display("send register request error"))]
13 SendRegisterReq { source: common::error::Error },
14 #[snafu(display("encode register request error"))]
15 EncodeRegisterReq { source: common::error::Error },
16 #[snafu(display("read register response error"))]
17 ReadRegisterResp { source: common::error::Error },
18 #[snafu(display("decode register response error"))]
19 DecodeRegisterResp { source: common::error::Error },
20 #[snafu(display("register response not `PbConnResponse::Register`"))]
21 RegisterRespNotMatch,
22 #[snafu(display("read stream request error"))]
23 ReadStreamReq { source: common::error::Error },
24 #[snafu(display("decode stream request error"))]
25 DecodeStreamReq { source: common::error::Error },
26 #[snafu(display("encode pb connect stream request error"))]
27 EncodePbConnStreamReq { source: common::error::Error },
28 #[snafu(display("connect local stream error"))]
29 ConnectLocalStream { source: std::io::Error },
30 #[snafu(display("connect remote stream error"))]
31 ConnectRemoteStream { source: std::io::Error },
32 #[snafu(display("write pb conn stream request error"))]
33 WritePbConnStreamReq { source: common::error::Error },
34 #[snafu(display("decode pb conn stream response error"))]
35 DecodePbConnStreamResp { source: common::error::Error },
36 #[snafu(display("we expected `PbConnResponse::Stream`,but actual response is `{resp}`"))]
37 PbConnStreamRespNotMatch {
38 resp: String,
40 },
41 #[snafu(display("Failed to write ping message"))]
42 WritePingMsg { source: common::error::Error },
43 #[snafu(display("Failed to encode ping message"))]
44 EncodePingMsg { source: common::error::Error },
45 #[snafu(display("Failed to write stream ack message"))]
46 WriteStreamAckMsg { source: common::error::Error },
47 #[snafu(display("Failed to encode stream ack message"))]
48 EncodeStreamAckMsg { source: common::error::Error },
49 #[snafu(display("control writer closed while scheduling `{action}`"))]
50 ControlWriterClosed { action: &'static str },
51 #[snafu(display("header msg tool:`{action}` create failed!"))]
52 CreateHeaderTool {
53 action: &'static str,
55 source: common::error::Error,
56 },
57 #[snafu(display("control io `{action}` timed out after {timeout:?}"))]
58 ControlIoTimeout {
59 action: &'static str,
60 timeout: Duration,
61 },
62}
63
64pub type Result<T, E = Error> = std::result::Result<T, E>;