use super::molecule::{Molecule, PrimaryKey};
use crate::value::MoleculeKindId;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct LogicalTime(pub u64);
#[derive(Clone, Debug)]
pub enum Delta {
Insert(Molecule),
Retract(MoleculeKindId, PrimaryKey, LogicalTime),
}
impl Delta {
pub fn kind_name(&self) -> &str {
match self {
Delta::Insert(m) => &m.kind_name,
Delta::Retract(_, _, _) => "<retract>",
}
}
}