use openraft_macros::since;
use crate::log_id::raft_log_id::RaftLogId;
#[since(version = "0.10.0", change = "removed `C: RaftTypeConfig` generic parameter")]
pub trait LogIdOptionExt {
fn index(&self) -> Option<u64>;
fn next_index(&self) -> u64;
}
impl<T> LogIdOptionExt for Option<T>
where T: RaftLogId
{
fn index(&self) -> Option<u64> {
self.as_ref().map(|x| x.index())
}
fn next_index(&self) -> u64 {
match self {
None => 0,
Some(log_id) => log_id.index() + 1,
}
}
}