Skip to main content

iii_sdk/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error, Clone)]
4pub enum IIIError {
5    #[error("iii is not connected")]
6    NotConnected,
7    #[error("invocation timed out")]
8    Timeout,
9    #[error("remote error ({code}): {message}")]
10    Remote { code: String, message: String },
11    #[error("handler error: {0}")]
12    Handler(String),
13    #[error("serialization error: {0}")]
14    Serde(String),
15    #[error("websocket error: {0}")]
16    WebSocket(String),
17}
18
19impl From<serde_json::Error> for IIIError {
20    fn from(err: serde_json::Error) -> Self {
21        IIIError::Serde(err.to_string())
22    }
23}
24
25impl From<tokio_tungstenite::tungstenite::Error> for IIIError {
26    fn from(err: tokio_tungstenite::tungstenite::Error) -> Self {
27        IIIError::WebSocket(err.to_string())
28    }
29}