Struct loro_internal::oplog::OpLog
source · pub struct OpLog { /* private fields */ }
Expand description
OpLog store all the ops i.e. the history. It allows multiple [AppState] to attach to it. So you can derive different versions of the state from the OpLog. It allows us to build a version control system.
The causal graph should always be a DAG and complete. So we can always find the LCA.
If deps are missing, we can’t import the change. It will be put into the pending_changes
.
Implementations§
source§impl OpLog
impl OpLog
pub fn latest_timestamp(&self) -> Timestamp
pub fn dag(&self) -> &AppDag
sourcepub fn get_change_with_lamport(
&self,
peer: PeerID,
lamport: Lamport,
) -> Option<&Change>
pub fn get_change_with_lamport( &self, peer: PeerID, lamport: Lamport, ) -> Option<&Change>
Get the change with the given peer and lamport.
If not found, return the change with the greatest lamport that is smaller than the given lamport.
pub fn get_timestamp_of_version(&self, f: &Frontiers) -> Timestamp
pub fn is_empty(&self) -> bool
pub fn changes(&self) -> &FxHashMap<PeerID, Vec<Change>>
pub fn get_peer_changes(&self, peer: PeerID) -> Option<&Vec<Change>>
sourcepub fn cmp_with_frontiers(&self, other: &Frontiers) -> Ordering
pub fn cmp_with_frontiers(&self, other: &Frontiers) -> Ordering
- Ordering::Less means self is less than target or parallel
- Ordering::Equal means versions equal
- Ordering::Greater means self’s version is greater than target
sourcepub fn cmp_frontiers(
&self,
a: &Frontiers,
b: &Frontiers,
) -> Result<Option<Ordering>, FrontiersNotIncluded>
pub fn cmp_frontiers( &self, a: &Frontiers, b: &Frontiers, ) -> Result<Option<Ordering>, FrontiersNotIncluded>
Compare two Frontiers causally.
If one of the Frontiers are not included, it will return FrontiersNotIncluded.
pub fn get_change_at(&self, id: ID) -> Option<&Change>
pub fn get_deps_of(&self, id: ID) -> Option<Frontiers>
pub fn get_remote_change_at(&self, id: ID) -> Option<Change<RemoteOp<'_>>>
pub fn len_changes(&self) -> usize
pub fn diagnose_size(&self) -> SizeInfo
pub fn get_timestamp_for_next_txn(&self) -> Timestamp
Trait Implementations§
Auto Trait Implementations§
impl Freeze for OpLog
impl RefUnwindSafe for OpLog
impl Send for OpLog
impl Sync for OpLog
impl Unpin for OpLog
impl UnwindSafe for OpLog
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