use crate::traits::ModelCompressor;
use crate::sovereign_codec::{SovereignCodec, CodecParams};
pub struct SovereignCodecCompressor {
codec: SovereignCodec,
}
impl SovereignCodecCompressor {
pub fn new() -> Self {
Self {
codec: SovereignCodec::new(CodecParams::default()),
}
}
}
impl Default for SovereignCodecCompressor {
fn default() -> Self {
Self::new()
}
}
impl ModelCompressor for SovereignCodecCompressor {
fn compress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
self.codec.compress(data)
}
fn decompress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
self.codec.decompress(data)
}
fn name(&self) -> &str {
"sovereign-codec"
}
}
pub struct AdaptiveCodecCompressor {
codec: SovereignCodec,
}
impl AdaptiveCodecCompressor {
pub fn new() -> Self {
Self {
codec: SovereignCodec::new(CodecParams::default()),
}
}
}
impl Default for AdaptiveCodecCompressor {
fn default() -> Self {
Self::new()
}
}
impl ModelCompressor for AdaptiveCodecCompressor {
fn compress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
self.codec.compress(data)
}
fn decompress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
self.codec.decompress(data)
}
fn name(&self) -> &str {
"adaptive-codec"
}
}