1use native_tls::TlsStream;
2use std::io;
3use std::net::TcpStream;
4use thiserror::Error;
5use tungstenite::ClientHandshake;
6
7pub type Result<T, E = EIMZOError> = std::result::Result<T, E>;
13
14#[derive(Error, Debug)]
16pub enum EIMZOError {
17 #[error("A websocket server went down: {0}")]
18 Io(#[from] io::Error),
19 #[error("JsonParse error: {0}")]
20 JsonParse(#[from] serde_json::Error),
21 #[error("UrlParseError error: {0}")]
22 UrlParseError(#[from] url::ParseError),
23 #[error("TlsError error: {0}")]
25 TlsError(#[from] native_tls::Error),
26 #[error("TlsHandshakeError error: {0}")]
27 TlsHandshakeError(#[from] native_tls::HandshakeError<TcpStream>),
28 #[error("HandshakeError error: {0}")]
29 HandshakeError(#[from] tungstenite::HandshakeError<ClientHandshake<TlsStream<TcpStream>>>),
30
31 #[error("Something aggressive is going on")]
33 Unknown,
34}