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§
Sourcefn decompress(&self, data: &[u8]) -> Result<Vec<u8>, CompressionError>
fn decompress(&self, data: &[u8]) -> Result<Vec<u8>, CompressionError>
Decompress the input data.
Sourcefn clone_box(&self) -> Box<dyn Compressor>
fn clone_box(&self) -> Box<dyn Compressor>
Clone this compressor into a box.
Trait Implementations§
Source§impl Compressor for Box<dyn Compressor>
impl Compressor for Box<dyn Compressor>
Implementations on Foreign Types§
Source§impl Compressor for Box<dyn Compressor>
impl Compressor for Box<dyn Compressor>
Source§impl Compressor for Arc<dyn Compressor>
impl Compressor for Arc<dyn Compressor>
Implementors§
impl Compressor for GzipCompressor
Available on crate feature
gzip only.impl Compressor for PassthroughCompressor
impl Compressor for ZstdCompressor
Available on crate feature
zstd only.