#[derive(Debug, Clone, Copy, PartialEq)]
pub enum ConsolidateKind {
Deleted,
FailedVectorRetrieval,
Complete,
}
#[derive(Copy, Clone, Debug)]
pub enum InplaceDeleteMethod {
VisitedAndTopK { k_value: usize, l_value: usize },
TwoHopAndOneHop,
OneHop,
}
#[cfg(feature = "experimental_diversity_search")]
#[derive(Clone, Debug)]
pub struct DiverseSearchParams<P>
where
P: crate::neighbor::AttributeValueProvider,
{
pub diverse_attribute_id: usize,
pub diverse_results_k: usize,
pub attribute_provider: std::sync::Arc<P>,
}
#[cfg(feature = "experimental_diversity_search")]
impl<P> DiverseSearchParams<P>
where
P: crate::neighbor::AttributeValueProvider,
{
pub fn new(
diverse_attribute_id: usize,
diverse_results_k: usize,
attribute_provider: std::sync::Arc<P>,
) -> Self {
Self {
diverse_attribute_id,
diverse_results_k,
attribute_provider,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_consolidate_enum() {
let delete_res_already_deleted = ConsolidateKind::Deleted;
match delete_res_already_deleted {
ConsolidateKind::Deleted => {}
_ => panic!("Expected already deleted variant"),
}
let delete_res_not_deleted = ConsolidateKind::Complete;
match delete_res_not_deleted {
ConsolidateKind::Complete => {}
_ => panic!("Expected not deleted variant"),
}
}
}