pub trait CompressionAlgorithm: Send + Sync {
// Required methods
fn compress(&self, data: &[u8]) -> ChieResult<Vec<u8>>;
fn decompress(&self, data: &[u8]) -> ChieResult<Vec<u8>>;
fn algorithm_id(&self) -> &str;
// Provided method
fn should_compress(&self, data_len: usize) -> bool { ... }
}Expand description
Compression algorithm trait for pluggable compression
Required Methods§
Sourcefn decompress(&self, data: &[u8]) -> ChieResult<Vec<u8>>
fn decompress(&self, data: &[u8]) -> ChieResult<Vec<u8>>
Sourcefn algorithm_id(&self) -> &str
fn algorithm_id(&self) -> &str
Get the compression algorithm identifier (e.g., “none”, “gzip”, “zstd”)
Provided Methods§
Sourcefn should_compress(&self, data_len: usize) -> bool
fn should_compress(&self, data_len: usize) -> bool
Check if data should be compressed based on size threshold