Struct causal_length::set::Set [−][src]
Causal Length Set
Set implements the set described in the paper, with the addition of a tag. Set only uses the tag for garbage collection of old removed members.
Implementations
impl<T, Tag, CL> Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
pub fn new() -> Set<T, Tag, CL>
[src]
Create a new empty Set
pub fn get<Q>(&self, member: Q) -> Option<Tag> where
Q: Borrow<T>,
[src]
Q: Borrow<T>,
Returns None
if member
is not present in the set. If present returns Some(Tag)
pub fn contains<Q>(&self, member: Q) -> bool where
Q: Borrow<T>,
[src]
Q: Borrow<T>,
Returns true if the set contains a value.
pub fn add(&mut self, member: T, tag: Tag)
[src]
Add a value to a set.
pub fn remove(&mut self, member: T, tag: Tag)
[src]
Removes a value from the set.
pub fn iter(&self) -> impl Iterator<Item = (&T, Tag)> + '_
[src]
An iterator visiting all elements and tags in arbitrary order.
pub fn register_iter(&self) -> impl Iterator<Item = Register<T, Tag, CL>> + '_
[src]
An iterator visiting all registers in arbitrary order.
pub fn merge_register(&mut self, delta: Register<T, Tag, CL>, min_tag: Tag)
[src]
Merge a delta Register into a set.
Remove registers with a tag value less than min_tag
will be ignored.
pub fn merge(&mut self, other: &Self, min_tag: Tag)
[src]
Merge two sets.
Remove deltas with a tag value less than min_tag
will be ignored.
pub fn retain(&mut self, min_tag: Tag)
[src]
Filter out old remove tombstone deltas from the set.
Remove deltas with a tag value less than min_tag
will be removed.
Trait Implementations
impl<T: Clone, Tag: Clone, CL: Clone> Clone for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<T: Debug, Tag: Debug, CL: Debug> Debug for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<T: Default, Tag: Default, CL: Default> Default for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<'de, T, Tag, CL> Deserialize<'de> for Set<T, Tag, CL> where
T: Eq + Hash + Clone + Deserialize<'de>,
Tag: TagT + Deserialize<'de>,
CL: CausalLength + Deserialize<'de>,
[src]
T: Eq + Hash + Clone + Deserialize<'de>,
Tag: TagT + Deserialize<'de>,
CL: CausalLength + Deserialize<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
[src]
D: Deserializer<'de>,
impl<T: Eq, Tag: Eq, CL: Eq> Eq for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<K, V, Tag, CL> From<Map<K, V, Tag, CL>> for Set<(K, V), Tag, CL> where
K: Key + Ord,
V: Value + Hash + Eq + Ord,
Tag: TagT,
CL: CausalLength,
[src]
K: Key + Ord,
V: Value + Hash + Eq + Ord,
Tag: TagT,
CL: CausalLength,
impl<K, V, Tag, CL> From<Set<(K, V), Tag, CL>> for Map<K, V, Tag, CL> where
K: Key + Ord,
V: Value + Hash + Eq + Ord,
Tag: TagT,
CL: CausalLength,
[src]
K: Key + Ord,
V: Value + Hash + Eq + Ord,
Tag: TagT,
CL: CausalLength,
impl<T: PartialEq, Tag: PartialEq, CL: PartialEq> PartialEq<Set<T, Tag, CL>> for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
fn eq(&self, other: &Set<T, Tag, CL>) -> bool
[src]
fn ne(&self, other: &Set<T, Tag, CL>) -> bool
[src]
impl<T, Tag, CL> Serialize for Set<T, Tag, CL> where
T: Key + Serialize,
Tag: TagT + Serialize,
CL: CausalLength + Serialize,
[src]
T: Key + Serialize,
Tag: TagT + Serialize,
CL: CausalLength + Serialize,
impl<T, Tag, CL> StructuralEq for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<T, Tag, CL> StructuralPartialEq for Set<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
Auto Trait Implementations
impl<T, Tag, CL> RefUnwindSafe for Set<T, Tag, CL> where
CL: RefUnwindSafe,
T: RefUnwindSafe,
Tag: RefUnwindSafe,
CL: RefUnwindSafe,
T: RefUnwindSafe,
Tag: RefUnwindSafe,
impl<T, Tag, CL> Send for Set<T, Tag, CL> where
CL: Send,
T: Send,
Tag: Send,
CL: Send,
T: Send,
Tag: Send,
impl<T, Tag, CL> Sync for Set<T, Tag, CL> where
CL: Sync,
T: Sync,
Tag: Sync,
CL: Sync,
T: Sync,
Tag: Sync,
impl<T, Tag, CL> Unpin for Set<T, Tag, CL> where
CL: Unpin,
T: Unpin,
Tag: Unpin,
CL: Unpin,
T: Unpin,
Tag: Unpin,
impl<T, Tag, CL> UnwindSafe for Set<T, Tag, CL> where
CL: UnwindSafe,
T: UnwindSafe,
Tag: UnwindSafe,
CL: UnwindSafe,
T: UnwindSafe,
Tag: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Value for T where
T: Clone + Eq,
[src]
T: Clone + Eq,