Struct crdts::orswot::Orswot
[−]
[src]
pub struct Orswot<Member: Ord + Clone + Serialize + DeserializeOwned, Actor: Ord + Clone + Serialize + DeserializeOwned> { /* fields omitted */ }
Orswot
is an add-biased or-set without tombstones ported from
the riak_dt CRDT library.
Methods
impl<Member: Ord + Clone + Serialize + DeserializeOwned, Actor: Ord + Clone + Serialize + DeserializeOwned> Orswot<Member, Actor>
[src]
fn new() -> Orswot<Member, Actor>
[src]
Returns a new Orswot
instance.
fn add(&mut self, member: Member, actor: Actor)
[src]
Add a single element.
Safety
add
should never be passed identical actor
arguments
for different replicas. This will result in data loss:
use crdts::Orswot; let (mut a, mut b) = (Orswot::new(), Orswot::new()); a.add(1, 1); b.add(2, 1); a.merge(b); assert!(a.value().is_empty());
fn add_all(&mut self, members: Vec<Member>, actor: Actor)
[src]
Add several members.
unsafe fn remove(&mut self, member: Member) -> Option<VClock<Actor>>
[src]
Remove a member without providing a witnessing context.
Returns an existing context VClock
if it was present.
fn remove_with_context(&mut self, member: Member, context: &VClock<Actor>)
[src]
Remove a member using a witnessing context.
unsafe fn remove_all(
&mut self,
members: Vec<Member>
) -> Vec<Option<VClock<Actor>>>
[src]
&mut self,
members: Vec<Member>
) -> Vec<Option<VClock<Actor>>>
Remove multiple members, without providing a witnessing context.
fn remove_all_with_context(
&mut self,
members: Vec<Member>,
context: &VClock<Actor>
)
[src]
&mut self,
members: Vec<Member>,
context: &VClock<Actor>
)
Remove multiple members with a witnessing context.
fn value(&self) -> Vec<Member>
[src]
Retrieve the current members.
fn merge(&mut self, other: Orswot<Member, Actor>)
[src]
Merge combines another Orswot
with this one.
fn precondition_context(&self) -> VClock<Actor>
[src]
Returns the current VClock
associated with this Orswot
.
Trait Implementations
impl<Member: Debug + Ord + Clone + Serialize + DeserializeOwned, Actor: Debug + Ord + Clone + Serialize + DeserializeOwned> Debug for Orswot<Member, Actor>
[src]
impl<Member: Clone + Ord + Clone + Serialize + DeserializeOwned, Actor: Clone + Ord + Clone + Serialize + DeserializeOwned> Clone for Orswot<Member, Actor>
[src]
fn clone(&self) -> Orswot<Member, Actor>
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<Member: PartialEq + Ord + Clone + Serialize + DeserializeOwned, Actor: PartialEq + Ord + Clone + Serialize + DeserializeOwned> PartialEq for Orswot<Member, Actor>
[src]
fn eq(&self, __arg_0: &Orswot<Member, Actor>) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Orswot<Member, Actor>) -> bool
[src]
This method tests for !=
.