Skip to main content

routee_compass/plugin/input/default/load_balancer/
builder.rs

1use 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}