use fastlz_rs::{CompressState, CompressionLevel};
use super::{Compressor, error::Error};
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct FastLZCompressor {
pub level: CompressionLevel,
}
impl FastLZCompressor {
#[cfg_attr(test, coverage(off))]
#[must_use]
pub fn new(level: CompressionLevel) -> Self {
Self { level }
}
}
impl Compressor for FastLZCompressor {
fn compress(&self, data: &[u8]) -> Result<Vec<u8>, Error> {
Ok(CompressState::new().compress_to_vec(data, self.level)?)
}
}