use super::types::CompressionCodec;
use crate::types::{CacheCapacity, MaxConnections, MaxErrors};
use std::path::PathBuf;
use std::time::Duration;
#[inline]
#[must_use]
pub fn max_connections() -> MaxConnections {
MaxConnections::try_new(10).expect("10 is non-zero")
}
#[inline]
#[must_use]
pub const fn health_check_interval() -> Duration {
Duration::from_secs(30)
}
#[inline]
#[must_use]
pub const fn health_check_timeout() -> Duration {
Duration::from_secs(5)
}
#[inline]
#[must_use]
pub fn unhealthy_threshold() -> MaxErrors {
MaxErrors::try_new(3).expect("3 is non-zero")
}
#[inline]
#[must_use]
pub fn cache_max_capacity() -> CacheCapacity {
CacheCapacity::try_new(64 * 1024 * 1024).expect("64MB is non-zero")
}
#[inline]
#[must_use]
pub const fn cache_ttl() -> Duration {
crate::constants::duration_polyfill::from_hours(1)
}
#[inline]
pub const fn cache_articles() -> bool {
false
}
#[inline]
pub const fn adaptive_precheck() -> bool {
false
}
#[inline]
#[must_use]
pub const fn socket_recv_buffer_size() -> usize {
crate::constants::socket::HIGH_THROUGHPUT_RECV_BUFFER
}
#[inline]
#[must_use]
pub const fn socket_send_buffer_size() -> usize {
crate::constants::socket::HIGH_THROUGHPUT_SEND_BUFFER
}
#[inline]
#[must_use]
pub const fn buffer_pool_size() -> usize {
crate::constants::buffer::POOL
}
#[inline]
#[must_use]
pub const fn buffer_pool_count() -> usize {
crate::constants::buffer::POOL_COUNT
}
#[inline]
#[must_use]
pub const fn capture_pool_size() -> usize {
crate::constants::buffer::CAPTURE
}
#[inline]
#[must_use]
pub const fn capture_pool_count() -> usize {
crate::constants::buffer::CAPTURE_COUNT
}
#[inline]
#[must_use]
pub const fn tls_verify_cert() -> bool {
true
}
#[inline]
#[must_use]
pub const fn health_check_max_per_cycle() -> usize {
use crate::constants::pool::MAX_CONNECTIONS_PER_HEALTH_CHECK_CYCLE;
MAX_CONNECTIONS_PER_HEALTH_CHECK_CYCLE
}
#[inline]
#[must_use]
pub const fn health_check_pool_timeout() -> Duration {
use crate::constants::pool::HEALTH_CHECK_POOL_TIMEOUT_MS;
Duration::from_millis(HEALTH_CHECK_POOL_TIMEOUT_MS)
}
#[inline]
#[must_use]
pub fn disk_cache_path() -> PathBuf {
PathBuf::from("/var/cache/nntp-proxy")
}
#[inline]
#[must_use]
pub fn disk_cache_capacity() -> CacheCapacity {
CacheCapacity::try_new(10 * 1024 * 1024 * 1024).expect("10GB is non-zero")
}
#[inline]
#[must_use]
pub const fn disk_cache_compression_codec() -> CompressionCodec {
CompressionCodec::Lz4
}
#[inline]
#[must_use]
pub const fn disk_cache_shards() -> usize {
4
}
#[inline]
pub const fn backend_idle_timeout() -> Duration {
crate::constants::duration_polyfill::from_minutes(10)
}
#[inline]
pub const fn replacement_cooldown() -> Duration {
Duration::from_secs(30)
}
#[inline]
#[allow(clippy::unnecessary_wraps)] pub const fn replacement_cooldown_option() -> Option<Duration> {
Some(replacement_cooldown())
}
#[inline]
pub fn log_file_level() -> String {
"warn".to_string()
}