Safe Haskell | None |
---|---|
Language | Haskell2010 |
Observed-Remove Set (OR-Set)
Synopsis
- newtype ORSet a = ORSet [a]
- newtype ObjectORSet a = ObjectORSet [a]
- data ORSetRaw
- addNewRef :: forall a m. (ReplicatedAsObject a, ReplicaClock m, MonadError String m) => a -> StateT (Object (ObjectORSet a)) m ()
- addRef :: (ReplicatedAsObject a, ReplicaClock m, MonadError String m) => Object a -> StateT (Object (ObjectORSet a)) m ()
- addValue :: (ReplicatedAsPayload a, ReplicaClock m, MonadError String m) => a -> StateT (Object (ORSet a)) m ()
- removeRef :: Object a -> StateT (Object (ORSet a)) m ()
- removeValue :: ReplicatedAsPayload a => a -> StateT (Object (ORSet a)) m ()
Documentation
Type-directing wrapper for typed OR-Set of atomic values
ORSet [a] |
Instances
ReplicatedAsPayload a => ReplicatedAsObject (ORSet a) Source # | |
ReplicatedAsPayload a => Replicated (ORSet a) Source # | |
Defined in RON.Data.ORSet |
newtype ObjectORSet a Source #
Type-directing wrapper for typed OR-Set of objects
ObjectORSet [a] |
Instances
ReplicatedAsObject a => ReplicatedAsObject (ObjectORSet a) Source # | |
Defined in RON.Data.ORSet objectOpType :: UUID Source # newObject :: ReplicaClock m => ObjectORSet a -> m (Object (ObjectORSet a)) Source # getObject :: Object (ObjectORSet a) -> Either String (ObjectORSet a) Source # | |
ReplicatedAsObject a => Replicated (ObjectORSet a) Source # | |
Defined in RON.Data.ORSet encoding :: Encoding (ObjectORSet a) Source # |
Untyped OR-Set. Implementation: a map from the last change (creation or deletion) to the original op.
Instances
Eq ORSetRaw Source # | |
Show ORSetRaw Source # | |
Semigroup ORSetRaw Source # | |
Monoid ORSetRaw Source # | |
Reducible ORSetRaw Source # | |
Defined in RON.Data.ORSet reducibleOpType :: UUID Source # stateFromChunk :: [Op] -> ORSetRaw Source # stateToChunk :: ORSetRaw -> StateChunk Source # applyPatches :: ORSetRaw -> Unapplied -> (ORSetRaw, Unapplied) Source # reduceUnappliedPatches :: Unapplied -> Unapplied Source # |
addNewRef :: forall a m. (ReplicatedAsObject a, ReplicaClock m, MonadError String m) => a -> StateT (Object (ObjectORSet a)) m () Source #
Encode an object and add a reference to it to the OR-Set
addRef :: (ReplicatedAsObject a, ReplicaClock m, MonadError String m) => Object a -> StateT (Object (ObjectORSet a)) m () Source #
Add a reference to the object to the OR-Set
addValue :: (ReplicatedAsPayload a, ReplicaClock m, MonadError String m) => a -> StateT (Object (ORSet a)) m () Source #
Add atomic value to the OR-Set
removeRef :: Object a -> StateT (Object (ORSet a)) m () Source #
Remove an object reference from the OR-Set
removeValue :: ReplicatedAsPayload a => a -> StateT (Object (ORSet a)) m () Source #
Remove an atomic value from the OR-Set