pub trait CompressionOracle: Send + Sync {
// Required methods
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 compression_distance_chain(
&self,
left_parts: &[&[u8]],
right_parts: &[&[u8]],
) -> Result<f64, CompressionError> { ... }
fn batch_compression_distance(
&self,
target: &[u8],
candidates: &[Vec<u8>],
) -> Result<Vec<f64>, CompressionError> { ... }
}Expand description
Compression capability (intentionally abstracted from router process).
Required Methods§
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 compression_distance_chain(
&self,
left_parts: &[&[u8]],
right_parts: &[&[u8]],
) -> Result<f64, CompressionError>
fn compression_distance_chain( &self, left_parts: &[&[u8]], right_parts: &[&[u8]], ) -> Result<f64, CompressionError>
CMR Section 3.2 compression distance where each side can be provided as a sequence of chunks without building contiguous buffers.
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.