pub const VIRTUAL_INDEX: u32 = u32::MAX;
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
pub enum RegistryTransitionType {
None,
Add,
RemoveTail,
RemoveSwap,
}
#[derive(Clone, Copy, Debug)]
pub struct RegistryView {
pub current_version: u32,
pub previous_version: u32,
pub previous_expires_at: i64,
pub current_node_count: u32,
pub previous_node_count: u32,
pub last_transition_type: RegistryTransitionType,
pub removed_old_index: u32,
pub moved_old_index: u32,
}
impl RegistryView {
pub fn is_remove_transition(&self) -> bool {
matches!(
self.last_transition_type,
RegistryTransitionType::RemoveTail | RegistryTransitionType::RemoveSwap
)
}
}
#[derive(Clone, Copy, Debug)]
pub struct NodeEntry {
pub index: u32,
pub x: [u8; 32],
pub y: [u8; 32],
}