Skip to main content

ctrader_rs/
error.rs

1///
2///
3///
4///
5///
6///
7///
8///
9///
10///
11///
12///
13///
14///
15///
16///
17use thiserror::Error;
18
19#[derive(Debug, Error)]
20pub enum Error {
21    #[error("I/O error: {0}")]
22    Io(#[from] std::io::Error),
23
24    #[error("TLS error: {0}")]
25    Tls(#[from] native_tls::Error),
26
27    #[error("protobuf encode error: {0}")]
28    Encode(#[from] prost::EncodeError),
29
30    #[error("protobuf decode error: {0}")]
31    Decode(#[from] prost::DecodeError),
32
33    #[error("cTrader API error [{error_code}]: {description}")]
34    Api {
35        error_code: String,
36        description: String,
37    },
38
39    #[error("unexpected response payload type: {0}")]
40    UnexpectedPayload(u32),
41
42    #[error("request timed out")]
43    Timeout,
44
45    #[error("channel closed — client disconnected")]
46    Disconnected,
47
48    #[error("unknown payload type: {0}")]
49    UnknownPayloadType(u32),
50}