use serde::Deserialize;
use crate::config::{request_handler::RequestHandlerConfig, server_control::ServerControlConfig};
#[derive(Clone, Debug, Deserialize)]
pub struct ServerConfig {
#[serde(default = "ServerConfig::default_bind")]
pub bind: tokio_listener::ListenerAddress,
pub unix_listen_access: Option<tokio_listener::UnixChmodVariant>,
#[serde(default, rename = "request-handler")]
pub request_handler: RequestHandlerConfig,
pub control: Option<ServerControlConfig>,
}
impl ServerConfig {
fn default_bind() -> tokio_listener::ListenerAddress {
"127.0.0.1:42069".parse().unwrap()
}
}
impl Default for ServerConfig {
fn default() -> Self {
Self {
bind: Self::default_bind(),
unix_listen_access: None,
request_handler: RequestHandlerConfig::default(),
control: None,
}
}
}