CompressionAlgorithm

Trait CompressionAlgorithm 

Source
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§

Source

fn compress(&self, data: &[u8]) -> ChieResult<Vec<u8>>

Compress data

§Errors

Returns error if compression fails

Source

fn decompress(&self, data: &[u8]) -> ChieResult<Vec<u8>>

Decompress data

§Errors

Returns error if decompression fails

Source

fn algorithm_id(&self) -> &str

Get the compression algorithm identifier (e.g., “none”, “gzip”, “zstd”)

Provided Methods§

Source

fn should_compress(&self, data_len: usize) -> bool

Check if data should be compressed based on size threshold

Implementors§