Struct causal_length::register::Register [−][src]
Causal Length Register
Register implements a single member for the set described in the paper, with the addition of a tag. Sort of acts like a CRDT Option type. Register doesn’t directly use the tag, but it also acts as a delta for the other CRDT’s in this crate.
Implementations
impl<T, Tag, CL> Register<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
pub fn new(item: T, tag: Tag) -> Register<T, Tag, CL>
[src]
Create a new Register
pub fn get(&self) -> Option<(&T, Tag)>
[src]
Returns None
if the register is empty. If present returns Some(&T, Tag)
pub fn set(&mut self, item: T, tag: Tag)
[src]
Set value
pub fn clear(&mut self, tag: Tag)
[src]
Clear value
pub fn item(&self) -> &T
[src]
pub fn tag(&self) -> Tag
[src]
pub fn length(&self) -> CL
[src]
impl<T, Tag, CL> Register<T, Tag, CL> where
T: Key + Ord,
Tag: TagT,
CL: CausalLength,
[src]
T: Key + Ord,
Tag: TagT,
CL: CausalLength,
Trait Implementations
impl<T: Clone, Tag: Clone, CL: Clone> Clone for Register<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 Register<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 Register<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 Register<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
T: Deserialize<'de>,
Tag: Deserialize<'de>,
CL: Deserialize<'de>,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
T: Deserialize<'de>,
Tag: Deserialize<'de>,
CL: 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 Register<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<T: PartialEq, Tag: PartialEq, CL: PartialEq> PartialEq<Register<T, Tag, CL>> for Register<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
fn eq(&self, other: &Register<T, Tag, CL>) -> bool
[src]
fn ne(&self, other: &Register<T, Tag, CL>) -> bool
[src]
impl<T, Tag, CL> Serialize for Register<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
T: Serialize,
Tag: Serialize,
CL: Serialize,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
T: Serialize,
Tag: Serialize,
CL: Serialize,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<T, Tag, CL> StructuralEq for Register<T, Tag, CL> where
T: Key,
Tag: TagT,
CL: CausalLength,
[src]
T: Key,
Tag: TagT,
CL: CausalLength,
impl<T, Tag, CL> StructuralPartialEq for Register<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 Register<T, Tag, CL> where
CL: RefUnwindSafe,
T: RefUnwindSafe,
Tag: RefUnwindSafe,
CL: RefUnwindSafe,
T: RefUnwindSafe,
Tag: RefUnwindSafe,
impl<T, Tag, CL> Send for Register<T, Tag, CL> where
CL: Send,
T: Send,
Tag: Send,
CL: Send,
T: Send,
Tag: Send,
impl<T, Tag, CL> Sync for Register<T, Tag, CL> where
CL: Sync,
T: Sync,
Tag: Sync,
CL: Sync,
T: Sync,
Tag: Sync,
impl<T, Tag, CL> Unpin for Register<T, Tag, CL> where
CL: Unpin,
T: Unpin,
Tag: Unpin,
CL: Unpin,
T: Unpin,
Tag: Unpin,
impl<T, Tag, CL> UnwindSafe for Register<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,