use std::time::Duration;
use serde::{Deserialize, Serialize};
use tycho_util::serde_helpers;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct OverlayConfig {
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_store_period: Duration,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_store_max_jitter: Duration,
pub public_overlay_peer_store_max_entries: usize,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_exchange_period: Duration,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_exchange_max_jitter: Duration,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_collect_period: Duration,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_collect_max_jitter: Duration,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_discovery_period: Duration,
#[serde(with = "serde_helpers::humantime")]
pub public_overlay_peer_discovery_max_jitter: Duration,
pub exchange_public_entries_batch: usize,
}
impl Default for OverlayConfig {
fn default() -> Self {
Self {
public_overlay_peer_store_period: Duration::from_secs(3 * 60),
public_overlay_peer_store_max_jitter: Duration::from_secs(30),
public_overlay_peer_store_max_entries: 20,
public_overlay_peer_exchange_period: Duration::from_secs(3 * 60),
public_overlay_peer_exchange_max_jitter: Duration::from_secs(30),
public_overlay_peer_collect_period: Duration::from_secs(10),
public_overlay_peer_collect_max_jitter: Duration::from_secs(5),
public_overlay_peer_discovery_period: Duration::from_secs(3 * 60),
public_overlay_peer_discovery_max_jitter: Duration::from_secs(30),
exchange_public_entries_batch: 20,
}
}
}