contextdb-engine 0.3.3

Embedded database engine for agentic memory — relational, graph, and vector under unified MVCC transactions
Documentation
use crate::database::Database;
use crate::sync_types::{ApplyResult, ChangeSet, ConflictPolicies};
use contextdb_core::Result;

pub trait ChangeTracking {
    fn changes_since(&self, since_lsn: u64) -> ChangeSet;
    fn current_lsn(&self) -> u64;
}

pub trait ChangeApplication {
    fn apply_changes(&self, changes: ChangeSet, policies: &ConflictPolicies)
    -> Result<ApplyResult>;
}

impl ChangeTracking for Database {
    fn changes_since(&self, since_lsn: u64) -> ChangeSet {
        Database::changes_since(self, since_lsn)
    }

    fn current_lsn(&self) -> u64 {
        Database::current_lsn(self)
    }
}

impl ChangeApplication for Database {
    fn apply_changes(
        &self,
        changes: ChangeSet,
        policies: &ConflictPolicies,
    ) -> Result<ApplyResult> {
        Database::apply_changes(self, changes, policies)
    }
}