use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "message", rename_all = "snake_case")]
pub enum ConnectionError {
ConnectionFailed(String),
TransferFailed(String),
Timeout(String),
Unknown(String),
}
impl fmt::Display for ConnectionError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
ConnectionError::ConnectionFailed(msg) => write!(f, "Connection failed: {msg}"),
ConnectionError::TransferFailed(msg) => write!(f, "Transfer failed: {msg}"),
ConnectionError::Timeout(msg) => write!(f, "Timeout: {msg}"),
ConnectionError::Unknown(msg) => write!(f, "Unknown error: {msg}"),
}
}
}