#[derive(Debug, Clone)]
pub struct ShredStreamConfig {
pub connection_timeout_ms: u64,
pub request_timeout_ms: u64,
pub max_decoding_message_size: usize,
pub reconnect_delay_ms: u64,
pub max_reconnect_attempts: u32,
}
impl Default for ShredStreamConfig {
fn default() -> Self {
Self {
connection_timeout_ms: 8000,
request_timeout_ms: 15000,
max_decoding_message_size: 1024 * 1024 * 100, reconnect_delay_ms: 1000,
max_reconnect_attempts: 3,
}
}
}
impl ShredStreamConfig {
pub fn low_latency() -> Self {
Self {
connection_timeout_ms: 5000,
request_timeout_ms: 10000,
max_decoding_message_size: 1024 * 1024 * 50,
reconnect_delay_ms: 100,
max_reconnect_attempts: 1,
}
}
pub fn high_throughput() -> Self {
Self {
connection_timeout_ms: 10000,
request_timeout_ms: 30000,
max_decoding_message_size: 1024 * 1024 * 200,
reconnect_delay_ms: 2000,
max_reconnect_attempts: 5,
}
}
}