use super::ArenaIdx;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct SchemaRef(pub(super) ArenaIdx);
impl From<ArenaIdx> for SchemaRef {
fn from(value: ArenaIdx) -> Self {
Self(value)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct TableRef(pub(super) ArenaIdx);
#[cfg(test)]
impl TableRef {
pub(crate) fn mock(i: usize) -> Self {
Self(ArenaIdx(i))
}
}
impl From<ArenaIdx> for TableRef {
fn from(value: ArenaIdx) -> Self {
Self(value)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct ColumnRef {
pub table_ref: TableRef,
pub(super) column_idx: ArenaIdx,
}
impl From<(ArenaIdx, ArenaIdx)> for ColumnRef {
fn from(value: (ArenaIdx, ArenaIdx)) -> Self {
Self {
table_ref: TableRef(value.0),
column_idx: value.1,
}
}
}