use std::collections::HashMap;
pub type CompressorResult<T> = Result<T, String>;
pub trait ICompressor {
fn module_name(&self) -> &str;
fn algorithm(&self) -> &str;
fn initialize(&mut self, config: HashMap<String, String>);
fn compress(&self, data: &[u8]) -> CompressorResult<Vec<u8>>;
fn decompress(&self, compressed_data: &[u8]) -> CompressorResult<Vec<u8>>;
fn validate(&self) -> Result<(), String>;
fn get_metadata(&self) -> HashMap<String, String>;
fn priority(&self) -> i32;
}