use thiserror::Error; #[derive(Debug, Error)] pub enum SharedError { #[error("Serialization error: {message}")] Serialization { message: String }, #[error("Invalid metric value: {message}")] InvalidMetric { message: String }, #[error("Protocol error: {message}")] Protocol { message: String }, } impl From for SharedError { fn from(err: serde_json::Error) -> Self { SharedError::Serialization { message: err.to_string(), } } }