pub trait HNSW {
// Required methods
fn search<F>(
&self,
txn: &RoTxn<'_>,
query: &[f64],
k: usize,
filter: Option<&[F]>,
should_trickle: bool,
) -> Result<Vec<HVector>, VectorError>
where F: Fn(&HVector, &RoTxn<'_>) -> bool;
fn insert<F>(
&self,
txn: &mut RwTxn<'_>,
data: &[f64],
fields: Option<Vec<(String, Value)>>,
) -> Result<HVector, VectorError>
where F: Fn(&HVector, &RoTxn<'_>) -> bool;
fn get_all_vectors(
&self,
txn: &RoTxn<'_>,
level: Option<usize>,
) -> Result<Vec<HVector>, VectorError>;
fn get_vector(
&self,
txn: &RoTxn<'_>,
id: u128,
level: usize,
with_data: bool,
) -> Result<HVector, VectorError>;
}
Required Methods§
Sourcefn search<F>(
&self,
txn: &RoTxn<'_>,
query: &[f64],
k: usize,
filter: Option<&[F]>,
should_trickle: bool,
) -> Result<Vec<HVector>, VectorError>
fn search<F>( &self, txn: &RoTxn<'_>, query: &[f64], k: usize, filter: Option<&[F]>, should_trickle: bool, ) -> Result<Vec<HVector>, VectorError>
Sourcefn insert<F>(
&self,
txn: &mut RwTxn<'_>,
data: &[f64],
fields: Option<Vec<(String, Value)>>,
) -> Result<HVector, VectorError>
fn insert<F>( &self, txn: &mut RwTxn<'_>, data: &[f64], fields: Option<Vec<(String, Value)>>, ) -> Result<HVector, VectorError>
Sourcefn get_all_vectors(
&self,
txn: &RoTxn<'_>,
level: Option<usize>,
) -> Result<Vec<HVector>, VectorError>
fn get_all_vectors( &self, txn: &RoTxn<'_>, level: Option<usize>, ) -> Result<Vec<HVector>, VectorError>
Sourcefn get_vector(
&self,
txn: &RoTxn<'_>,
id: u128,
level: usize,
with_data: bool,
) -> Result<HVector, VectorError>
fn get_vector( &self, txn: &RoTxn<'_>, id: u128, level: usize, with_data: bool, ) -> Result<HVector, VectorError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.