use crate::http::server::stack::CompressionOptions;
#[derive(Debug, Clone, Default)]
pub struct NetworkingOptions {
pub relay_mode: Option<String>,
pub relays: Vec<String>,
pub bind_addrs: Vec<String>,
pub idle_timeout_ms: Option<u64>,
pub proxy_url: Option<String>,
pub proxy_from_env: bool,
pub disabled: bool,
}
#[derive(Debug, Clone)]
pub struct DiscoveryOptions {
pub dns_server: Option<String>,
pub enabled: bool,
}
impl Default for DiscoveryOptions {
fn default() -> Self {
Self {
dns_server: None,
enabled: true,
}
}
}
#[derive(Debug, Clone, Default)]
pub struct PoolOptions {
pub max_connections: Option<usize>,
pub idle_timeout_ms: Option<u64>,
}
#[derive(Debug, Clone, Default)]
pub struct StreamingOptions {
pub channel_capacity: Option<usize>,
pub max_chunk_size_bytes: Option<usize>,
pub drain_timeout_ms: Option<u64>,
pub handle_ttl_ms: Option<u64>,
pub sweep_interval_ms: Option<u64>,
}
#[derive(Debug, Clone, Default)]
pub struct NodeOptions {
pub key: Option<[u8; 32]>,
pub networking: NetworkingOptions,
pub discovery: DiscoveryOptions,
pub pool: PoolOptions,
pub streaming: StreamingOptions,
pub capabilities: Vec<String>,
pub keylog: bool,
pub max_header_size: Option<usize>,
pub max_response_body_bytes: Option<usize>,
pub compression: Option<CompressionOptions>,
}