use std::fmt;
use display_more::DisplayOptionExt;
use crate::RaftTypeConfig;
use crate::display_ext::DisplayInstantExt;
use crate::type_config::alias::InstantOf;
use crate::type_config::alias::LogIdOf;
#[derive(Debug, Clone)]
#[derive(PartialEq, Eq)]
pub(crate) struct HeartbeatEvent<C>
where C: RaftTypeConfig
{
pub(crate) time: InstantOf<C>,
pub(crate) matching: Option<LogIdOf<C>>,
pub(crate) committed: Option<LogIdOf<C>>,
}
impl<C> fmt::Display for HeartbeatEvent<C>
where C: RaftTypeConfig
{
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"(time={}, matching: {}, committed: {})",
self.time.display(),
self.matching.display(),
self.committed.display()
)
}
}