use thiserror::Error;
#[derive(Error, Debug)]
pub enum CompressionError {
#[error("Compression failed: {0}")]
CompressionFailed(String),
#[error("Decompression failed: {0}")]
DecompressionFailed(String),
#[error("Invalid compression level: {0} (must be between {1} and {2})")]
InvalidLevel(u32, u32, u32),
#[error("Unsupported compression algorithm: {0}")]
UnsupportedAlgorithm(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Configuration error: {0}")]
Config(String),
}