pub enum Op<M, A: Ord> {
Add {
dot: Dot<A>,
members: Vec<M>,
},
Rm {
clock: VClock<A>,
members: Vec<M>,
},
}
Expand description
Op’s define an edit to an Orswot, Op’s must be replayed in the exact order they were produced to guarantee convergence.
Op’s are idempotent, that is, applying an Op twice will not have an effect
Variants§
Trait Implementations§
source§impl<'de, M, A> Deserialize<'de> for Op<M, A>where
M: Deserialize<'de>,
A: Deserialize<'de> + Ord,
impl<'de, M, A> Deserialize<'de> for Op<M, A>where M: Deserialize<'de>, A: Deserialize<'de> + Ord,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<M: PartialEq, A: PartialEq + Ord> PartialEq<Op<M, A>> for Op<M, A>
impl<M: PartialEq, A: PartialEq + Ord> PartialEq<Op<M, A>> for Op<M, A>
impl<M: Eq, A: Eq + Ord> Eq for Op<M, A>
impl<M, A: Ord> StructuralEq for Op<M, A>
impl<M, A: Ord> StructuralPartialEq for Op<M, A>
Auto Trait Implementations§
impl<M, A> RefUnwindSafe for Op<M, A>where A: RefUnwindSafe, M: RefUnwindSafe,
impl<M, A> Send for Op<M, A>where A: Send, M: Send,
impl<M, A> Sync for Op<M, A>where A: Sync, M: Sync,
impl<M, A> Unpin for Op<M, A>where A: Unpin, M: Unpin,
impl<M, A> UnwindSafe for Op<M, A>where A: UnwindSafe + RefUnwindSafe, M: UnwindSafe,
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