use serde::Deserialize;
use std::{collections::HashMap, path::PathBuf};
#[derive(Deserialize)]
pub struct Server {
pub name: String,
pub root: PathBuf,
pub directories: HashMap<PathBuf, Directive>,
}
#[derive(Deserialize)]
pub enum Directive {
Allow(bool),
Alias(String),
Redirect(PathBuf),
Interpreter(String),
Cgi,
ScriptAlias(PathBuf),
}
impl Default for Server {
fn default() -> Self {
Self {
name: String::from("example.com"),
root: PathBuf::from("/srv/spartan"),
directories: HashMap::from([(PathBuf::from("/"), Directive::Allow(true))]),
}
}
}