use std::fmt;
use display_more::DisplayOptionExt;
use crate::RaftTypeConfig;
use crate::display_ext::display_instant::DisplayInstantExt;
use crate::type_config::TypeConfigExt;
use crate::type_config::alias::InstantOf;
use crate::type_config::alias::LogIdOf;
#[derive(Debug, Clone)]
pub(crate) struct InflightAppend<C>
where C: RaftTypeConfig
{
pub(crate) sending_time: InstantOf<C>,
pub(crate) last_log_id: Option<LogIdOf<C>>,
}
impl<C> fmt::Display for InflightAppend<C>
where C: RaftTypeConfig
{
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"InflightAppend{{sending_time:{}, last_log_id:{}}}",
self.sending_time.display(),
self.last_log_id.display()
)
}
}
impl<C> InflightAppend<C>
where C: RaftTypeConfig
{
pub(crate) fn new(last_log_id: Option<LogIdOf<C>>) -> Self {
Self {
sending_time: C::now(),
last_log_id,
}
}
}