use std::time::Duration;
#[derive(Debug, Clone, Copy)]
pub struct HeartbeatPolicy {
pub ping_interval: Duration,
pub pong_timeout: Duration,
pub max_missed_pongs: u32,
pub idle_timeout: Duration,
pub jitter: Duration,
}
impl Default for HeartbeatPolicy {
fn default() -> Self {
Self {
ping_interval: Duration::from_millis(25_000),
pong_timeout: Duration::from_millis(10_000),
max_missed_pongs: 2,
idle_timeout: Duration::from_secs(300),
jitter: Duration::from_millis(2_500),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn defaults() {
let h = HeartbeatPolicy::default();
assert_eq!(h.ping_interval, Duration::from_millis(25_000));
assert_eq!(h.pong_timeout, Duration::from_millis(10_000));
}
}