use jealousy::FromEnv;
use serde::Deserialize;
use std::net::Ipv4Addr;
use crate::data::LicenseDatabase;
#[derive(Debug, Deserialize, FromEnv, Clone)]
#[from_env(prefix = "LICENSE_API")]
pub struct ServerConfig {
#[serde(default = "ServerConfig::default_base_url")]
pub base_url: String,
pub database: String,
#[serde(default = "ServerConfig::default_server_ip")]
pub server_ip: Ipv4Addr,
#[serde(default = "ServerConfig::default_server_port")]
pub server_port: u16,
pub welcome_message: Option<String>
}
impl ServerConfig {
fn default_base_url() -> String {
String::from("/")
}
fn default_server_ip() -> Ipv4Addr {
Ipv4Addr::new(0, 0, 0, 0)
}
fn default_server_port() -> u16 {
8080
}
}
#[derive(Debug, Clone)]
pub struct RunningConfig {
pub config: ServerConfig,
pub database: LicenseDatabase,
}