use std::{env::var, net::IpAddr, sync::LazyLock};
pub(crate) static SECRET: LazyLock<String> =
LazyLock::new(|| var("AA_SECRET").expect("environment variable AA_SECRET"));
pub(crate) static DOMAIN: LazyLock<String> =
LazyLock::new(|| var("AA_DOMAIN").expect("environment variable AA_DOMAIN"));
pub(crate) static BIND_IP: LazyLock<IpAddr> = LazyLock::new(|| {
var("AA_BIND_IP")
.unwrap_or_else(|_| "127.0.0.1".into())
.parse()
.expect("environment variable AA_BIND_IP must be a valid IP address")
});
pub(crate) static BIND_PORT: LazyLock<u16> = LazyLock::new(|| {
var("AA_BIND_PORT")
.unwrap_or_else(|_| "3030".into())
.parse()
.expect("environment variable AA_BIND_PORT must be a valid u16")
});
pub(crate) static DEBUG_LOGGING: LazyLock<bool> = LazyLock::new(|| {
cfg!(debug_assertions)
|| var("AA_DEBUG_LOGGING")
.unwrap_or_else(|_| "false".into())
.parse()
.expect("environment variable AA_DEBUG_LOGGING must be a valid boolean")
});
pub(crate) const MAX_BODY_SIZE: u64 = 96;