[−][src]Struct cvrdt_exposition::g_set::GSet
A set that can only add values
Examples
Example usage, including demonstrating some properties:
use std::collections::HashSet; use cvrdt_exposition::{Grow, GSet}; let mut x = GSet::new(HashSet::new()); for c in "abc".chars() { x.add(c); } assert_eq!(x.query(&'a'), true); assert_eq!(x.query(&'z'), false); assert!(x.le(&GSet::new("abcdef".chars().collect()))); let y = GSet::new("cdefg".chars().collect()); assert_eq!(x.merge(&y).payload(), y.merge(&x).payload()); let z = GSet::new("8675309abcdefg".chars().collect()); assert_eq!(x.merge(&y.merge(&z)).payload(), x.merge(&y).merge(&z).payload());
Fields
values: HashSet<X>
The contents of this set
Trait Implementations
impl<X: Clone + Eq + Hash> Clone for GSet<X>
[src]
impl<X: Debug + Clone + Eq + Hash> Debug for GSet<X>
[src]
impl<X: Clone + Eq + Hash> Grow for GSet<X>
[src]
type Payload = HashSet<X>
The internal state of our CvRDT; sufficient to build a new copy via new
. Required to implement Eq
for testing and verification. Read more
type Update = X
Message to update our internal state
type Query = X
Message to query the Value
of our CvRDT
type Value = bool
The response to a Query
fn new(payload: Self::Payload) -> Self
[src]
fn payload(&self) -> Self::Payload
[src]
fn add(&mut self, update: Self::Update)
[src]
fn le(&self, other: &Self) -> bool
[src]
fn merge(&self, other: &Self) -> Self
[src]
fn query(&self, query: &Self::Query) -> Self::Value
[src]
Auto Trait Implementations
impl<X> RefUnwindSafe for GSet<X> where
X: RefUnwindSafe,
X: RefUnwindSafe,
impl<X> Send for GSet<X> where
X: Send,
X: Send,
impl<X> Sync for GSet<X> where
X: Sync,
X: Sync,
impl<X> Unpin for GSet<X> where
X: Unpin,
X: Unpin,
impl<X> UnwindSafe for GSet<X> where
X: UnwindSafe,
X: 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,
fn borrow_mut(&mut self) -> &mut T
[src]
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.
fn to_owned(&self) -> T
[src]
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.
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>,