use crate::block::{BlockEncoding, Encode};
#[derive(Debug)]
pub struct ZstdEncoder {
level: i32,
}
impl ZstdEncoder {
pub fn new(level: i32) -> Self {
Self { level }
}
}
impl Encode for ZstdEncoder {
const CODE: BlockEncoding = BlockEncoding::ZSTD;
fn encode(&self, input: &[u8], output: &mut Vec<u8>) -> crate::Result<()> {
zstd::stream::copy_encode(input, output, self.level)?;
Ok(())
}
fn decode(&self, input: &[u8], output: &mut Vec<u8>) -> crate::Result<()> {
zstd::stream::copy_decode(input, output)?;
Ok(())
}
}