Skip to main content

Compressor

Trait Compressor 

Source
pub trait Compressor:
    Send
    + Sync
    + Debug {
    // Required methods
    fn compress(&self, data: &[u8]) -> Result<Vec<u8>, CompressionError>;
    fn decompress(&self, data: &[u8]) -> Result<Vec<u8>, CompressionError>;
    fn clone_box(&self) -> Box<dyn Compressor>;
}
Expand description

Trait for compressing and decompressing cached values.

Implement this trait to provide custom compression algorithms. The trait is dyn-compatible with blanket impls for Box<dyn Compressor> and Arc<dyn Compressor>.

Required Methods§

Source

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

Compress the input data.

Source

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

Decompress the input data.

Source

fn clone_box(&self) -> Box<dyn Compressor>

Clone this compressor into a box.

Trait Implementations§

Source§

impl Compressor for Box<dyn Compressor>

Source§

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

Compress the input data.
Source§

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

Decompress the input data.
Source§

fn clone_box(&self) -> Box<dyn Compressor>

Clone this compressor into a box.

Implementations on Foreign Types§

Source§

impl Compressor for Box<dyn Compressor>

Source§

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

Source§

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

Source§

fn clone_box(&self) -> Box<dyn Compressor>

Source§

impl Compressor for Arc<dyn Compressor>

Source§

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

Source§

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

Source§

fn clone_box(&self) -> Box<dyn Compressor>

Implementors§

Source§

impl Compressor for GzipCompressor

Available on crate feature gzip only.
Source§

impl Compressor for PassthroughCompressor

Source§

impl Compressor for ZstdCompressor

Available on crate feature zstd only.