use thiserror::Error;
pub const MAX_FRAME_BYTES: usize = 8 * 1024 * 1024;
#[derive(Debug, Error)]
pub enum OverlaydError {
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[error("frame codec error: {0}")]
Codec(#[from] serde_json::Error),
#[error("frame too large: {0} bytes (max {MAX_FRAME_BYTES})")]
FrameTooLarge(usize),
#[error("connection closed by peer")]
Closed,
#[error("overlay engine error: {0}")]
Overlay(String),
#[error("{0}")]
Other(String),
}
pub type Result<T> = std::result::Result<T, OverlaydError>;