liteboxfs 0.2.0

A modern POSIX filesystem in a SQLite database
Documentation
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(())
    }
}