Skip to main content

RerankCodec

Trait RerankCodec 

Source
pub trait RerankCodec: Send + Sync {
    // Required methods
    fn encode(&self, v: &[f32]) -> Result<Vec<u8>, RerankError>;
    fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>;
    fn distance_prepared(
        &self,
        prepared: &PreparedQuery,
        encoded: &[u8],
    ) -> Result<f32, RerankError>;
    fn name(&self) -> CodecName;
    fn to_bytes(&self) -> Result<Vec<u8>, RerankError>;

    // Provided method
    fn train(&mut self, _samples: &[&[f32]]) -> Result<(), RerankError> { ... }
}
Expand description

Object-safe trait for asymmetric rerank codecs. Each impl wraps an existing nodedb-codec::VectorCodec and exposes a uniform shape so the sidecar can hold Arc<dyn RerankCodec> regardless of the underlying associated-type machinery.

Required Methods§

Source

fn encode(&self, v: &[f32]) -> Result<Vec<u8>, RerankError>

Encode a full-precision vector. Returns fixed-width bytes for this codec.

Source

fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>

Prepare a query once before repeated distance calls.

Source

fn distance_prepared( &self, prepared: &PreparedQuery, encoded: &[u8], ) -> Result<f32, RerankError>

Compute asymmetric distance from a prepared query to an encoded vector.

Source

fn name(&self) -> CodecName

Identity tag for mismatch detection.

Source

fn to_bytes(&self) -> Result<Vec<u8>, RerankError>

Serialize trained state to bytes. Each codec uses its own magic header (NDSQ / NDBIN / NDPQ / NDRBQ / NDBBQ). The bytes are codec-specific; rerank_codec_from_bytes is used for restore, paired with name().

Provided Methods§

Source

fn train(&mut self, _samples: &[&[f32]]) -> Result<(), RerankError>

Train from a sample of vectors. Default no-op for codecs that don’t need training (e.g. Binary). Specific codec impls override this when needed.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§