use crate::index::vector::DistanceMetric;
use crate::index::vector::hnsw::{HnswConfig, HnswIndex};
use crate::index::vector::temporal::{TemporalVectorConfig, TemporalVectorIndex};
use std::sync::Arc;
pub(crate) struct VectorIndexEntry {
pub(crate) index: Arc<HnswIndex>,
pub(crate) config: HnswConfig,
}
#[derive(Debug, Clone)]
pub struct VectorIndexInfo {
pub property_name: String,
pub dimensions: usize,
pub distance_metric: DistanceMetric,
}
pub(crate) struct TemporalVectorIndexEntry {
pub(crate) index: Arc<TemporalVectorIndex>,
#[allow(dead_code)]
pub(crate) config: TemporalVectorConfig,
}
pub(crate) struct TemporalVectorIndexState {
pub(crate) index: Option<Arc<TemporalVectorIndex>>,
pub(crate) property_name: Option<String>,
pub(crate) config: Option<TemporalVectorConfig>,
}
impl TemporalVectorIndexState {
pub(crate) fn new() -> Self {
TemporalVectorIndexState {
index: None,
property_name: None,
config: None,
}
}
#[allow(dead_code)] pub(crate) fn is_enabled(&self) -> bool {
self.index.is_some()
}
}