pub struct Store {
pub oplog: OpLog,
/* private fields */
}Expand description
Persistent graph store backed by redb + in-memory OpLog.
On open: loads all entries from redb into the OpLog. On append: writes to both OpLog (in-memory) and redb (on-disk) atomically.
Fields§
§oplog: OpLogImplementations§
Source§impl Store
impl Store
Sourcepub fn open(path: &Path, genesis: Option<Entry>) -> Result<Self, StoreError>
pub fn open(path: &Path, genesis: Option<Entry>) -> Result<Self, StoreError>
Open or create a store at the given path.
If the database already exists, all entries are loaded into the OpLog. If the database is new, a genesis entry must be provided.
Sourcepub fn append(&mut self, entry: Entry) -> Result<bool, StoreError>
pub fn append(&mut self, entry: Entry) -> Result<bool, StoreError>
Append an entry — writes to both OpLog and redb. Review 4 fix: single redb transaction for entry + heads (was 2 transactions).
Sourcepub fn merge(&mut self, entries: &[Entry]) -> Result<usize, StoreError>
pub fn merge(&mut self, entries: &[Entry]) -> Result<usize, StoreError>
Merge a batch of remote entries — writes each to OpLog and redb.
Handles out-of-order entries by retrying those with missing parents. Returns the number of new entries merged. Review 4 fix: batches all entry writes + heads into fewer transactions.
Sourcepub fn replace_with_checkpoint(
&mut self,
checkpoint: Entry,
) -> Result<(), StoreError>
pub fn replace_with_checkpoint( &mut self, checkpoint: Entry, ) -> Result<(), StoreError>
R-08: Replace entire store with a single checkpoint entry.