use serde::{Deserialize, Serialize};
use crate::logging::config::LoggingConfig;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProxyConfig {
#[serde(default)]
pub server: ServerConfig,
#[serde(default)]
pub logging: LoggingConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServerConfig {
#[serde(default = "default_listen")]
pub listen: String,
#[serde(default = "default_body_limit")]
pub body_limit: usize,
#[serde(default = "default_header_limit")]
pub header_limit: usize,
}
fn default_listen() -> String {
"[::]:8080".to_string()
}
fn default_body_limit() -> usize {
5 * 1024 * 1024 }
fn default_header_limit() -> usize {
256 * 1024 }
impl Default for ServerConfig {
fn default() -> Self {
Self {
listen: default_listen(),
body_limit: default_body_limit(),
header_limit: default_header_limit(),
}
}
}
impl Default for ProxyConfig {
fn default() -> Self {
Self {
server: ServerConfig::default(),
logging: LoggingConfig::default(),
}
}
}