use module_utils::merge_conf;
use serde::Deserialize;
use std::collections::HashMap;
#[derive(Debug, Default, Deserialize)]
#[serde(default)]
pub struct SubDirConf {
pub strip_prefix: bool,
}
#[merge_conf]
pub struct SubDirCombined<C: Default> {
pub subdir: SubDirConf,
pub config: C,
}
#[derive(Debug, Default, Deserialize)]
#[serde(default)]
pub struct VirtualHostConf<C: Default> {
pub aliases: Vec<String>,
pub default: bool,
pub subdirs: HashMap<String, SubDirCombined<C>>,
}
#[merge_conf]
pub struct VirtualHostCombined<C: Default> {
pub host: VirtualHostConf<C>,
pub config: C,
}
#[derive(Debug, Default, Deserialize)]
#[serde(default)]
pub struct VirtualHostsConf<C: Default> {
pub vhosts: HashMap<String, VirtualHostCombined<C>>,
}