use std::time::Duration;
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Hit {
pub id: u32,
pub dist_sq: f32,
}
pub struct RingQuery<'a> {
pub query: &'a [f32],
pub d: f32,
pub lambda: f32,
}
pub struct RangeQuery<'a> {
pub query: &'a [f32],
pub d_min: f32,
pub d_max: f32,
}
pub struct DiskQuery<'a> {
pub query: &'a [f32],
pub d_max: f32,
}
pub struct QueryResult {
pub hits: Vec<Hit>,
pub backend_used: &'static str,
pub elapsed: Duration,
}
impl QueryResult {
pub fn ids(&self) -> Vec<u32> {
self.hits.iter().map(|h| h.id).collect()
}
}