llm_cost_ops/compression/
mod.rs1pub mod types;
4pub mod codec;
5pub mod middleware;
6pub mod config;
7pub mod metrics;
8
9pub use types::{CompressionAlgorithm, CompressionLevel, ContentEncoding, CompressionStats};
10pub use codec::{Compressor, compress, decompress};
11pub use middleware::{CompressionLayer, compression_layer};
12pub use config::CompressionConfig;
13pub use metrics::CompressionMetrics;
14
15#[derive(Debug, thiserror::Error)]
17pub enum CompressionError {
18 #[error("Compression failed: {0}")]
19 CompressionFailed(String),
20
21 #[error("Decompression failed: {0}")]
22 DecompressionFailed(String),
23
24 #[error("Unsupported algorithm: {0}")]
25 UnsupportedAlgorithm(String),
26
27 #[error("Invalid compression level: {0}")]
28 InvalidLevel(String),
29
30 #[error("IO error: {0}")]
31 IoError(#[from] std::io::Error),
32
33 #[error("Invalid encoding: {0}")]
34 InvalidEncoding(String),
35
36 #[error("Size limit exceeded: {0}")]
37 SizeLimitExceeded(String),
38}
39
40impl From<CompressionError> for crate::domain::CostOpsError {
41 fn from(err: CompressionError) -> Self {
42 crate::domain::CostOpsError::Internal(err.to_string())
43 }
44}
45
46pub type CompressionResult<T> = Result<T, CompressionError>;