use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[non_exhaustive]
#[derive(Debug, Error, Clone, PartialEq, Eq)]
pub enum Error {
#[error("Invalid message: {0}")]
InvalidMessage(String),
#[error("Invalid user ID: {0}")]
InvalidUserId(String),
#[error("Invalid app ID: {0}")]
InvalidAppId(String),
#[error("Invalid TTL: {0}")]
InvalidTTL(u8),
#[error("Invalid hop count: {0}")]
InvalidHopCount(u8),
#[error("Serialization error: {0}")]
SerializationError(String),
#[error("Deserialization error: {0}")]
DeserializationError(String),
#[error("Invalid service ID: {0}")]
InvalidServiceId(String),
#[error("{0}")]
Other(String),
}
impl From<serde_json::Error> for Error {
fn from(err: serde_json::Error) -> Self {
Error::SerializationError(err.to_string())
}
}