routee_compass/plugin/input/default/load_balancer/
plugin.rs1use std::sync::Arc;
2
3use super::weight_heuristic::WeightHeuristic;
4use crate::app::search::SearchApp;
5use crate::plugin::input::input_plugin::InputPlugin;
6use crate::plugin::input::InputJsonExtensions;
7use crate::plugin::input::InputPluginError;
8
9pub struct LoadBalancerPlugin {
10 pub heuristic: WeightHeuristic,
11}
12
13impl InputPlugin for LoadBalancerPlugin {
14 fn process(
15 &self,
16 query: &mut serde_json::Value,
17 _search_app: Arc<SearchApp>,
18 ) -> Result<(), InputPluginError> {
19 let w = self.heuristic.estimate_weight(query)?;
20 let _updated = query.clone();
21 query.add_query_weight_estimate(w)?;
22 Ok(())
23 }
24}