#[derive(Debug, thiserror::Error)]
pub enum CodecError {
#[error("truncated input: expected at least {expected} bytes, got {actual}")]
Truncated { expected: usize, actual: usize },
#[error("corrupt data: {detail}")]
Corrupt { detail: String },
#[error("decompression failed: {detail}")]
DecompressFailed { detail: String },
#[error("compression failed: {detail}")]
CompressFailed { detail: String },
#[error("codec mismatch: expected {expected}, found {found}")]
CodecMismatch { expected: String, found: String },
}