VectorProvider

Trait VectorProvider 

Source
pub trait VectorProvider {
    // Required method
    fn get_vector(&self, id: VectorId) -> Cow<'_, [f32]>;

    // Provided methods
    fn is_deleted(&self, id: VectorId) -> bool { ... }
    fn get_quantized_vector(&self, id: VectorId) -> Option<&[u8]> { ... }
    fn quantize_query<'a>(
        &self,
        query: &[f32],
        output: &'a mut Vec<u8>,
    ) -> Option<&'a [u8]> { ... }
}
Expand description

Trait for providing vector data by ID.

Required Methods§

Source

fn get_vector(&self, id: VectorId) -> Cow<'_, [f32]>

Returns the vector data for a given ID.

Provided Methods§

Source

fn is_deleted(&self, id: VectorId) -> bool

Returns true if the vector is marked as deleted.

Source

fn get_quantized_vector(&self, id: VectorId) -> Option<&[u8]>

Returns the quantized vector data for a given ID, if available.

§Returns
  • Some(&[u8]) - If the provider supports direct quantized access.
  • None - If not supported or data is not quantized.
Source

fn quantize_query<'a>( &self, query: &[f32], output: &'a mut Vec<u8>, ) -> Option<&'a [u8]>

Quantizes a query vector into the provided output buffer.

§Arguments
  • query - The query vector in f32.
  • output - buffer to write quantized data into.
§Returns
  • Some(&[u8]) - The quantized slice (borrowed from output).
  • None - If quantization is not supported.

Implementors§