use http::StatusCode;
use thiserror::Error;
#[derive(Debug, Clone, Error, PartialEq)]
pub enum DeboaError {
#[error("Invalid cookie header: {message}")]
Cookie { message: String },
#[error("Invalid client certificate: {message}")]
ClientCert { message: String },
#[error("Invalid header: {message}")]
Header { message: String },
#[error("Could not connect to {host}: {message}")]
Connection { host: String, message: String },
#[error("Failed to send request: {method} {url}: {message}")]
Request {
url: String,
method: String,
message: String,
},
#[error("Failed to receive response: {status_code}: {message}")]
Response {
status_code: StatusCode,
message: String,
},
#[error("Failed to process response: {message}")]
ProcessResponse { message: String },
#[error("Unsupported scheme: {message}")]
UnsupportedScheme { message: String },
#[error("Failed to serialize data: {message}")]
Serialization { message: String },
#[error("Failed to deserialize data: {message}")]
Deserialization { message: String },
#[error("Failed to parse url: {message}")]
UrlParse { message: String },
#[error("Failed to compress data: {message}")]
Compress { message: String },
#[error("Failed to decompress data: {message}")]
Decompress { message: String },
#[error("Failed to write file: {message}")]
Io { message: String },
#[error("Websocket error: {0}")]
WebSocket(#[from] WebSocketError),
#[error("SSE error: {0}")]
SSE(#[from] SSEError),
}
#[derive(Debug, Clone, Error, PartialEq)]
pub enum WebSocketError {
#[error("Failed to send message: {message}")]
SendMessage { message: String },
#[error("Failed to receive message: {message}")]
ReceiveMessage { message: String },
}
#[derive(Debug, Clone, Error, PartialEq)]
pub enum SSEError {
#[error("Failed to receive event: {message}")]
ReceiveEvent { message: String },
}