use thiserror::Error;
use crate::http_api_v3::data::error::Error as ResponseError;
#[derive(Debug, Error)]
pub enum Error {
#[error("URL {0} parsing: {1}")]
UrlParsing(reqwest::UrlError, String),
#[error("request building: {0}")]
RequestBuilding(reqwest::Error),
#[error("authorization keys missing. Please, add create a client with keys")]
AuthorizationKeysMissing,
#[error("request execution: {0}")]
RequestExecution(reqwest::Error),
#[error("response reading: {0}")]
ResponseReading(reqwest::Error),
#[error("response parsing: {0} ({1})")]
ResponseParsing(serde_json::Error, String),
#[error("response error: {0:?}")]
ResponseError(ResponseError),
#[error("WebSocket: {0}")]
WebSocket(websocket::WebSocketError),
}