oxigdal_compress/
error.rs1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, CompressionError>;
7
8#[derive(Error, Debug)]
10pub enum CompressionError {
11 #[error("Codec not supported: {0}")]
13 CodecNotSupported(String),
14
15 #[error("Compression failed: {0}")]
17 CompressionFailed(String),
18
19 #[error("Decompression failed: {0}")]
21 DecompressionFailed(String),
22
23 #[error("Invalid compression level: {level}, expected range {min}..={max}")]
25 InvalidCompressionLevel {
26 level: i32,
28 min: i32,
30 max: i32,
32 },
33
34 #[error("Invalid buffer size: {0}")]
36 InvalidBufferSize(String),
37
38 #[error("Checksum mismatch: expected {expected:x}, got {actual:x}")]
40 ChecksumMismatch {
41 expected: u64,
43 actual: u64,
45 },
46
47 #[error("Integrity check failed: {0}")]
49 IntegrityCheckFailed(String),
50
51 #[error("Invalid metadata: {0}")]
53 InvalidMetadata(String),
54
55 #[error("I/O error: {0}")]
57 Io(#[from] std::io::Error),
58
59 #[error("Invalid parameter: {0}")]
61 InvalidParameter(String),
62
63 #[error("LZ4 error: {0}")]
65 Lz4Error(String),
66
67 #[error("Zstd error: {0}")]
69 ZstdError(String),
70
71 #[error("Brotli error: {0}")]
73 BrotliError(String),
74
75 #[error("Snappy codec error: {0}")]
77 SnappyError(String),
78
79 #[error("Deflate error: {0}")]
81 DeflateError(String),
82
83 #[error("Delta codec error: {0}")]
85 DeltaError(String),
86
87 #[error("RLE error: {0}")]
89 RleError(String),
90
91 #[error("Dictionary error: {0}")]
93 DictionaryError(String),
94
95 #[error("Floating-point compression error: {0}")]
97 FloatingPointError(String),
98
99 #[error("Auto-selection error: {0}")]
101 AutoSelectionError(String),
102
103 #[error("Parallel processing error: {0}")]
105 ParallelError(String),
106
107 #[error("Streaming error: {0}")]
109 StreamingError(String),
110
111 #[error("Unsupported data type: {0}")]
113 UnsupportedDataType(String),
114
115 #[error("Buffer too small: required {required}, available {available}")]
117 BufferTooSmall {
118 required: usize,
120 available: usize,
122 },
123
124 #[error("Configuration error: {0}")]
126 ConfigurationError(String),
127}
128
129impl From<oxiarc_snappy::SnappyError> for CompressionError {
134 fn from(err: oxiarc_snappy::SnappyError) -> Self {
135 CompressionError::SnappyError(err.to_string())
136 }
137}