thal 0.0.1

Reactive semantic runtime — molecules, reactions, and effect actors for building LLM-backed applications as dataflow programs.
Documentation
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>",
        }
    }
}