use bbox_core::config::{from_config_opt_or_exit, ConfigError, DsPostgisCfg};
use bbox_core::service::ServiceConfig;
use clap::ArgMatches;
use serde::Deserialize;
#[derive(Deserialize, Default, Debug)]
#[serde(default, deny_unknown_fields)]
pub struct RoutingServiceCfg {
pub service: Vec<RoutingCfg>,
}
#[derive(Deserialize, Clone, Default, Debug)]
#[serde(deny_unknown_fields)]
pub struct RoutingCfg {
pub profile: Option<String>,
pub search_dist: Option<f64>,
pub gpkg: String,
pub postgis: Option<DsPostgisCfg>,
pub table: String,
pub node_table: Option<String>,
pub geom: String,
pub node_id: Option<String>,
pub cost: Option<String>,
pub node_src: Option<String>,
pub node_dst: Option<String>,
}
impl ServiceConfig for RoutingServiceCfg {
fn initialize(_cli: &ArgMatches) -> Result<Self, ConfigError> {
let cfg = from_config_opt_or_exit("routing").unwrap_or_default();
Ok(cfg)
}
}