use crate::NodeId;
use crate::core::State;
use crate::raft::MembershipConfig;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct RaftMetrics {
pub id: NodeId,
pub state: State,
pub current_term: u64,
pub last_log_index: u64,
pub last_applied: u64,
pub current_leader: Option<NodeId>,
pub membership_config: MembershipConfig,
}
impl RaftMetrics {
pub(crate) fn new_initial(id: NodeId) -> Self {
let membership_config = MembershipConfig::new_initial(id);
Self{id, state: State::Follower, current_term: 0, last_log_index: 0, last_applied: 0, current_leader: None, membership_config}
}
}