#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct RowHandle {
slot: u32,
generation: u32,
}
impl RowHandle {
pub(super) fn new(slot: u32, generation: u32) -> RowHandle {
RowHandle { slot, generation }
}
pub(crate) fn slot(self) -> u32 {
self.slot
}
pub(crate) fn generation(self) -> u32 {
self.generation
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub(crate) struct BindingId(pub u32);
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub(crate) struct JoinedIdentity {
left: RowHandle,
right: RowHandle,
emission: u32,
}
impl JoinedIdentity {
pub(crate) fn new(left: RowHandle, right: RowHandle, emission: u32) -> JoinedIdentity {
JoinedIdentity {
left,
right,
emission,
}
}
pub(crate) fn left(self) -> RowHandle {
self.left
}
pub(crate) fn right(self) -> RowHandle {
self.right
}
}