pub trait CompressionOracle: Send + Sync {
// Required methods
fn ncd_sym(
&self,
left: &[u8],
right: &[u8],
) -> Result<f64, CompressionError>;
fn compression_distance(
&self,
left: &[u8],
right: &[u8],
) -> Result<f64, CompressionError>;
fn intrinsic_dependence(
&self,
data: &[u8],
max_order: i64,
) -> Result<f64, CompressionError>;
// Provided methods
fn batch_compression_distance(
&self,
target: &[u8],
candidates: &[Vec<u8>],
) -> Result<Vec<f64>, CompressionError> { ... }
fn batch_ncd_sym(
&self,
target: &[u8],
candidates: &[Vec<u8>],
) -> Result<Vec<f64>, CompressionError> { ... }
}Expand description
Compression capability (intentionally abstracted from router process).
Required Methods§
Sourcefn ncd_sym(&self, left: &[u8], right: &[u8]) -> Result<f64, CompressionError>
fn ncd_sym(&self, left: &[u8], right: &[u8]) -> Result<f64, CompressionError>
Symmetric NCD-like distance.
Sourcefn compression_distance(
&self,
left: &[u8],
right: &[u8],
) -> Result<f64, CompressionError>
fn compression_distance( &self, left: &[u8], right: &[u8], ) -> Result<f64, CompressionError>
CMR Section 3.2 compression distance from spec:
C(XY)-C(X) + C(YX)-C(Y).
Sourcefn intrinsic_dependence(
&self,
data: &[u8],
max_order: i64,
) -> Result<f64, CompressionError>
fn intrinsic_dependence( &self, data: &[u8], max_order: i64, ) -> Result<f64, CompressionError>
Intrinsic dependence.
Provided Methods§
Sourcefn batch_compression_distance(
&self,
target: &[u8],
candidates: &[Vec<u8>],
) -> Result<Vec<f64>, CompressionError>
fn batch_compression_distance( &self, target: &[u8], candidates: &[Vec<u8>], ) -> Result<Vec<f64>, CompressionError>
Batch CMR distance, defaulting to repeated scalar calls.
Sourcefn batch_ncd_sym(
&self,
target: &[u8],
candidates: &[Vec<u8>],
) -> Result<Vec<f64>, CompressionError>
fn batch_ncd_sym( &self, target: &[u8], candidates: &[Vec<u8>], ) -> Result<Vec<f64>, CompressionError>
Batch NCD, defaulting to repeated scalar calls.