use ip_network::Ipv4Network;
use mac_address::MacAddress;
use serde::{Deserialize, Serialize};
use super::LeaseTime;
use std::{collections::HashMap, net::Ipv4Addr, path::PathBuf};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct LeaseConfig {
#[serde(skip)]
pub leases_file_path: PathBuf,
pub lease_time: LeaseTime,
pub network_cidr: Ipv4Network,
pub static_leases: HashMap<MacAddress, Ipv4Addr>,
pub use_leases_file: bool,
}
impl Default for LeaseConfig {
fn default() -> Self {
Self {
lease_time: LeaseTime::ONE_DAY,
network_cidr: Ipv4Network::new(Ipv4Addr::new(10, 0, 0, 0), 16).unwrap(), static_leases: HashMap::new(),
use_leases_file: cfg!(all(
not(feature = "benchmark"),
not(feature = "integration")
)),
leases_file_path: PathBuf::new(), }
}
}