pub trait VectorExecutor: Send + Sync {
// Required methods
fn search(
&self,
query: &[f32],
k: usize,
candidates: Option<&RoaringTreemap>,
snapshot: SnapshotId,
) -> Result<Vec<(RowId, f32)>>;
fn insert_vector(
&self,
tx: TxId,
row_id: RowId,
vector: Vec<f32>,
) -> Result<()>;
fn delete_vector(&self, tx: TxId, row_id: RowId) -> Result<()>;
}