use serde::Deserialize;
#[cfg(doc)]
use libp2p::kad::KademliaConfig;
#[derive(Clone, Debug, Deserialize)]
pub struct DhtConfig {
#[serde(default = "default_bootstrap_interval")]
pub bootstrap_interval: u64,
#[serde(default = "default_peer_dialing_interval")]
pub peer_dialing_interval: u64,
#[serde(default = "default_publication_interval")]
pub publication_interval: u32,
#[serde(default = "default_query_timeout")]
pub query_timeout: u32,
#[serde(default = "default_replication_interval")]
pub replication_interval: u32,
#[serde(default = "default_record_ttl")]
pub record_ttl: u32,
}
fn default_bootstrap_interval() -> u64 {
5 * 60 }
fn default_peer_dialing_interval() -> u64 {
if cfg!(test) {
1
} else {
5
}
}
fn default_publication_interval() -> u32 {
60 * 60 * 24 }
fn default_query_timeout() -> u32 {
5 * 60 }
fn default_replication_interval() -> u32 {
60 * 60 }
fn default_record_ttl() -> u32 {
60 * 60 * 24 * 3 }
impl Default for DhtConfig {
fn default() -> Self {
Self {
bootstrap_interval: default_bootstrap_interval(),
peer_dialing_interval: default_peer_dialing_interval(),
publication_interval: default_publication_interval(),
query_timeout: default_query_timeout(),
replication_interval: default_replication_interval(),
record_ttl: default_record_ttl(),
}
}
}