use crate::tree::inner::TreeId;
pub type TableId = u64;
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct GlobalTableId(TreeId, TableId);
impl GlobalTableId {
#[must_use]
pub fn tree_id(&self) -> TreeId {
self.0
}
#[must_use]
pub fn table_id(&self) -> TableId {
self.1
}
}
impl From<(TreeId, TableId)> for GlobalTableId {
fn from((tid, sid): (TreeId, TableId)) -> Self {
Self(tid, sid)
}
}
#[cfg(test)]
mod tests {
use super::*;
use test_log::test;
#[test]
fn global_table_id_accessors() {
let tree_id = 42;
let table_id: TableId = 7;
let global_table_id = GlobalTableId::from((tree_id, table_id));
assert_eq!(global_table_id.tree_id(), 42);
assert_eq!(global_table_id.table_id(), 7);
}
}