pub trait Compressor: Send + Sync {
// Required methods
fn compress(&self, data: &[u8]) -> Result<Vec<u8>>;
fn decompress(&self, data: &[u8]) -> Result<Vec<u8>>;
fn algorithm(&self) -> CompressionAlgorithm;
// Provided methods
fn name(&self) -> &'static str { ... }
fn can_detect(&self, _data: &[u8]) -> bool { ... }
}Expand description
压缩器标准接口
实现此 trait 以支持自定义压缩算法
§示例
use flare_core::common::compression::{Compressor, CompressionAlgorithm};
use flare_core::common::error::Result;
struct MyCustomCompressor;
impl Compressor for MyCustomCompressor {
fn compress(&self, data: &[u8]) -> Result<Vec<u8>> {
// 实现压缩逻辑
Ok(data.to_vec())
}
fn decompress(&self, data: &[u8]) -> Result<Vec<u8>> {
// 实现解压逻辑
Ok(data.to_vec())
}
fn algorithm(&self) -> CompressionAlgorithm {
CompressionAlgorithm::None
}
fn name(&self) -> &'static str {
"my_custom"
}
fn can_detect(&self, data: &[u8]) -> bool {
// 实现魔数检测逻辑
false
}
}Required Methods§
Sourcefn algorithm(&self) -> CompressionAlgorithm
fn algorithm(&self) -> CompressionAlgorithm
获取压缩算法类型
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".