Skip to main content

lib_compression/
model_compressor.rs

1//! Model compressor bridge implementations
2
3use crate::traits::ModelCompressor;
4use crate::sovereign_codec::{SovereignCodec, CodecParams};
5
6/// SovereignCodec wrapper implementing ModelCompressor.
7pub struct SovereignCodecCompressor {
8    codec: SovereignCodec,
9}
10
11impl SovereignCodecCompressor {
12    pub fn new() -> Self {
13        Self {
14            codec: SovereignCodec::new(CodecParams::default()),
15        }
16    }
17}
18
19impl Default for SovereignCodecCompressor {
20    fn default() -> Self {
21        Self::new()
22    }
23}
24
25impl ModelCompressor for SovereignCodecCompressor {
26    fn compress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
27        self.codec.compress(data)
28    }
29
30    fn decompress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
31        self.codec.decompress(data)
32    }
33
34    fn name(&self) -> &str {
35        "sovereign-codec"
36    }
37}
38
39/// Adaptive codec with learned parameters (stub).
40pub struct AdaptiveCodecCompressor {
41    codec: SovereignCodec,
42}
43
44impl AdaptiveCodecCompressor {
45    pub fn new() -> Self {
46        Self {
47            codec: SovereignCodec::new(CodecParams::default()),
48        }
49    }
50}
51
52impl Default for AdaptiveCodecCompressor {
53    fn default() -> Self {
54        Self::new()
55    }
56}
57
58impl ModelCompressor for AdaptiveCodecCompressor {
59    fn compress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
60        self.codec.compress(data)
61    }
62
63    fn decompress(&self, data: &[u8]) -> crate::Result<Vec<u8>> {
64        self.codec.decompress(data)
65    }
66
67    fn name(&self) -> &str {
68        "adaptive-codec"
69    }
70}