#![allow(dead_code)]
pub mod bloom;
pub mod hot;
pub mod secondary;
pub mod sparse;
pub type RecordId = u64;
pub type SequenceNumber = u64;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct VersionPointer {
pub record_id: RecordId,
pub sequence: SequenceNumber,
pub location: VersionLocation,
pub tombstone: bool,
pub timestamp: Option<i64>,
}
impl VersionPointer {
pub fn is_visible_at(&self, snapshot: SequenceNumber) -> bool {
self.sequence <= snapshot && !self.tombstone
}
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum VersionLocation {
MemTable,
Segment {
segment_id: String,
offset: u64,
length: u32,
},
}