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.
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.
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.
Auto Trait Implementations§
impl Freeze for Store
impl !RefUnwindSafe for Store
impl Send for Store
impl Sync for Store
impl Unpin for Store
impl UnsafeUnpin for Store
impl !UnwindSafe for Store
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more