use thiserror::Error;
use tokio_tungstenite::tungstenite::Message;
#[derive(Debug, Error)]
pub enum Error {
#[error("Failed to parse URL: {}", 0)]
UrlParse {
url: String,
#[source]
source: url::ParseError,
},
#[error("Tungstenite error: {0}")]
WebsocketError(#[from] tokio_tungstenite::tungstenite::Error),
#[error("Socket Closed")]
WebsocketClosed,
#[error("Unexpected Message type: {0}")]
UnexpectedMessageType(Box<Message>),
#[error("Codec error: {0}")]
Codec(#[source] Box<dyn std::error::Error + Send + Sync>),
#[error("Socketeer dropped without closing")]
SocketeerDroppedWithoutClosing,
}