use serde::{Deserialize, Serialize};
use crate::EldegossId;
#[derive(Debug, Serialize, Deserialize)]
#[serde(default)]
#[serde(deny_unknown_fields)]
pub struct Config {
pub id: String,
pub listen: String,
pub connect: Vec<String>,
pub ca_path: String,
pub cert_path: String,
pub private_key_path: String,
pub subscription_list: Vec<String>,
pub keep_alive_interval: u64,
pub check_link_interval: u64,
pub msg_timeout: u64,
pub gossip_fanout: usize,
}
impl Default for Config {
fn default() -> Self {
Self {
id: Into::<EldegossId>::into(rand::random::<u128>()).hex(),
ca_path: Default::default(),
connect: Default::default(),
listen: Default::default(),
cert_path: Default::default(),
private_key_path: Default::default(),
subscription_list: Default::default(),
keep_alive_interval: 5,
check_link_interval: 1,
msg_timeout: 2,
gossip_fanout: 3,
}
}
}