iocaine 2.4.0

The deadliest poison known to AI
Documentation
// SPDX-FileCopyrightText: 2025 Gergely Nagy
// SPDX-FileContributor: Gergely Nagy
//
// SPDX-License-Identifier: MIT

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,
        }
    }
}