pub struct CrdtStore { /* private fields */ }Expand description
A simple conflict-free replicated data store backed by a concurrent map.
Implementations§
Source§impl CrdtStore
impl CrdtStore
Sourcepub fn put(
&self,
id: impl Into<NodeId>,
actor: impl Into<ActorId>,
data: NodeData,
) -> NodeId
pub fn put( &self, id: impl Into<NodeId>, actor: impl Into<ActorId>, data: NodeData, ) -> NodeId
Inserts or updates a node using CRDT semantics.
Sourcepub fn delete(&self, id: impl AsRef<str>) -> Result<(), StoreError>
pub fn delete(&self, id: impl AsRef<str>) -> Result<(), StoreError>
Removes a node from the store.
Sourcepub fn list(&self) -> Vec<NodeRecord>
pub fn list(&self) -> Vec<NodeRecord>
Lists all nodes currently stored.
Sourcepub fn apply(&self, op: CrdtOperation) -> Result<Option<NodeId>, StoreError>
pub fn apply(&self, op: CrdtOperation) -> Result<Option<NodeId>, StoreError>
Applies a CRDT operation, returning the resulting node identifier when relevant.
Sourcepub fn operation_for(
&self,
actor: impl Into<ActorId>,
data: NodeData,
) -> (NodeId, CrdtOperation)
pub fn operation_for( &self, actor: impl Into<ActorId>, data: NodeData, ) -> (NodeId, CrdtOperation)
Generates a CRDT operation representing the provided node data.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CrdtStore
impl !RefUnwindSafe for CrdtStore
impl Send for CrdtStore
impl Sync for CrdtStore
impl Unpin for CrdtStore
impl UnwindSafe for CrdtStore
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