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