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§
Sourcefn encode(&self, v: &[f32]) -> Result<Vec<u8>, RerankError>
fn encode(&self, v: &[f32]) -> Result<Vec<u8>, RerankError>
Encode a full-precision vector. Returns fixed-width bytes for this codec.
Sourcefn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>
fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>
Prepare a query once before repeated distance calls.
Sourcefn distance_prepared(
&self,
prepared: &PreparedQuery,
encoded: &[u8],
) -> Result<f32, RerankError>
fn distance_prepared( &self, prepared: &PreparedQuery, encoded: &[u8], ) -> Result<f32, RerankError>
Compute asymmetric distance from a prepared query to an encoded vector.
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".