diff --git a/aquatic_udp/src/lib/config.rs b/aquatic_udp/src/lib/config.rs index f26ba4e..3db300d 100644 --- a/aquatic_udp/src/lib/config.rs +++ b/aquatic_udp/src/lib/config.rs @@ -27,6 +27,25 @@ pub struct Config { pub cpu_pinning: aquatic_common::cpu_pinning::CpuPinningConfig, } +impl Default for Config { + fn default() -> Self { + Self { + socket_workers: 1, + request_workers: 1, + log_level: LogLevel::Error, + network: NetworkConfig::default(), + protocol: ProtocolConfig::default(), + handlers: HandlerConfig::default(), + statistics: StatisticsConfig::default(), + cleaning: CleaningConfig::default(), + privileges: PrivilegeConfig::default(), + access_list: AccessListConfig::default(), + #[cfg(feature = "cpu-pinning")] + cpu_pinning: Default::default(), + } + } +} + impl aquatic_cli_helpers::Config for Config { fn get_log_level(&self) -> Option { Some(self.log_level) @@ -57,6 +76,17 @@ pub struct NetworkConfig { pub poll_event_capacity: usize, } +impl Default for NetworkConfig { + fn default() -> Self { + Self { + address: SocketAddr::from(([0, 0, 0, 0], 3000)), + only_ipv6: false, + socket_recv_buffer_size: 4096 * 128, + poll_event_capacity: 4096, + } + } +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(default)] pub struct ProtocolConfig { @@ -68,12 +98,30 @@ pub struct ProtocolConfig { pub peer_announce_interval: i32, } +impl Default for ProtocolConfig { + fn default() -> Self { + Self { + max_scrape_torrents: 255, + max_response_peers: 255, + peer_announce_interval: 60 * 15, + } + } +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(default)] pub struct HandlerConfig { pub channel_recv_timeout_ms: u64, } +impl Default for HandlerConfig { + fn default() -> Self { + Self { + channel_recv_timeout_ms: 100, + } + } +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(default)] pub struct StatisticsConfig { @@ -81,6 +129,12 @@ pub struct StatisticsConfig { pub interval: u64, } +impl Default for StatisticsConfig { + fn default() -> Self { + Self { interval: 0 } + } +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(default)] pub struct CleaningConfig { @@ -94,60 +148,6 @@ pub struct CleaningConfig { pub max_peer_age: u64, } -impl Default for Config { - fn default() -> Self { - Self { - socket_workers: 1, - request_workers: 1, - log_level: LogLevel::Error, - network: NetworkConfig::default(), - protocol: ProtocolConfig::default(), - handlers: HandlerConfig::default(), - statistics: StatisticsConfig::default(), - cleaning: CleaningConfig::default(), - privileges: PrivilegeConfig::default(), - access_list: AccessListConfig::default(), - #[cfg(feature = "cpu-pinning")] - cpu_pinning: Default::default(), - } - } -} - -impl Default for NetworkConfig { - fn default() -> Self { - Self { - address: SocketAddr::from(([0, 0, 0, 0], 3000)), - only_ipv6: false, - socket_recv_buffer_size: 4096 * 128, - poll_event_capacity: 4096, - } - } -} - -impl Default for ProtocolConfig { - fn default() -> Self { - Self { - max_scrape_torrents: 255, - max_response_peers: 255, - peer_announce_interval: 60 * 15, - } - } -} - -impl Default for HandlerConfig { - fn default() -> Self { - Self { - channel_recv_timeout_ms: 100, - } - } -} - -impl Default for StatisticsConfig { - fn default() -> Self { - Self { interval: 0 } - } -} - impl Default for CleaningConfig { fn default() -> Self { Self {