use serde::{Deserialize, Serialize};
use crate::core::ApplyDefaultLocator;
use crate::{DenseVector, StorageLocator};
use super::{ScopedQuery, VectorQueryOptions};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct NearestRequest {
pub query: ScopedQuery<VectorQueryOptions>,
pub vector: DenseVector,
}
impl ApplyDefaultLocator for NearestRequest {
fn apply_default_locator(mut self, default: &StorageLocator) -> Self {
self.query = self.query.apply_default_locator(default);
self
}
}
impl NearestRequest {
#[must_use]
pub fn new(locator: StorageLocator, vector: DenseVector) -> Self {
Self {
query: ScopedQuery::vector(locator),
vector,
}
}
}