routee_compass/plugin/input/default/load_balancer/
builder.rs1use super::{plugin::LoadBalancerPlugin, weight_heuristic::WeightHeuristic};
2use crate::plugin::input::{InputPlugin, InputPluginBuilder};
3use routee_compass_core::config::{CompassConfigurationError, ConfigJsonExtensions};
4use std::sync::Arc;
5
6pub struct LoadBalancerBuilder {}
7
8impl InputPluginBuilder for LoadBalancerBuilder {
9 fn build(
10 &self,
11 params: &serde_json::Value,
12 ) -> Result<Arc<dyn InputPlugin>, CompassConfigurationError> {
13 let heuristic =
14 params.get_config_serde::<WeightHeuristic>(&"weight_heuristic", &"load_balancer")?;
15 Ok(Arc::new(LoadBalancerPlugin { heuristic }))
16 }
17}