use std::net::{IpAddr, Ipv4Addr};
use serde::Deserialize;
use url::Url;
#[derive(Debug, Clone, Deserialize)]
pub struct Http {
#[serde(default = "default_bind_address")]
pub address: IpAddr,
#[serde(default = "default_port")]
pub port: u16,
#[serde(default = "default_public_url")]
pub public_url: Url,
pub api_token: String,
#[serde(default)]
pub disable_openapi: bool,
}
pub(crate) const fn default_bind_address() -> IpAddr {
IpAddr::V4(Ipv4Addr::UNSPECIFIED)
}
const fn default_port() -> u16 {
11333
}
fn default_public_url() -> Url {
let port = default_port();
Url::parse(&format!("http://localhost:{port}")).unwrap()
}