1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use thiserror::Error;
use crate::SubscriptionId;
#[derive(Debug, Error)]
pub enum SocketError {
#[error("Sink error")]
Sink,
#[error("SerDe JSON error: {error} when deserialising payload: {payload}")]
Serde {
error: serde_json::Error,
payload: String,
},
#[error("error subscribing to resources over the socket: {0}")]
Subscribe(String),
#[error("ExchangeSocket terminated with closing frame: {0}")]
Terminated(String),
#[error("{entity} does not support: {item}")]
Unsupported { entity: &'static str, item: String },
#[error("consumed unidentifiable message: {0}")]
Unidentifiable(SubscriptionId),
#[error("WebSocket error: {0}")]
WebSocket(#[from] tokio_tungstenite::tungstenite::Error),
}