use crate::metrics::Metrics;
use crate::search::cache::SearchCache;
use crate::search::plugins::PluginManager;
use std::sync::Arc;
pub struct SearchEngine {
pub metrics: Arc<Metrics>,
pub plugin_manager: PluginManager,
pub cache: SearchCache,
}
impl SearchEngine {
pub fn new(metrics: Arc<Metrics>) -> crate::error::Result<Self> {
Ok(Self {
metrics,
plugin_manager: PluginManager::new()?,
cache: SearchCache::new(),
})
}
}