ron-rdt-0.6: Replicated Data Types (RON-RDT)

Safe HaskellNone
LanguageHaskell2010

RON.Data.ORSet

Description

Observed-Remove Set (OR-Set)

Synopsis

Documentation

newtype ORSet a Source #

Type-directing wrapper for typed OR-Set of atomic values

Constructors

ORSet [a] 
Instances
ReplicatedAsPayload a => ReplicatedAsObject (ORSet a) Source # 
Instance details

Defined in RON.Data.ORSet

ReplicatedAsPayload a => Replicated (ORSet a) Source # 
Instance details

Defined in RON.Data.ORSet

Methods

encoding :: Encoding (ORSet a) Source #

newtype ObjectORSet a Source #

Type-directing wrapper for typed OR-Set of objects

Constructors

ObjectORSet [a] 
Instances
ReplicatedAsObject a => ReplicatedAsObject (ObjectORSet a) Source # 
Instance details

Defined in RON.Data.ORSet

ReplicatedAsObject a => Replicated (ObjectORSet a) Source # 
Instance details

Defined in RON.Data.ORSet

Methods

encoding :: Encoding (ObjectORSet a) Source #

data ORSetRaw Source #

Untyped OR-Set. Implementation: a map from the last change (creation or deletion) to the original op.

Instances
Eq ORSetRaw Source # 
Instance details

Defined in RON.Data.ORSet

Show ORSetRaw Source # 
Instance details

Defined in RON.Data.ORSet

Semigroup ORSetRaw Source # 
Instance details

Defined in RON.Data.ORSet

Monoid ORSetRaw Source # 
Instance details

Defined in RON.Data.ORSet

Reducible ORSetRaw Source # 
Instance details

Defined in RON.Data.ORSet

addNewRef :: forall a m. (ReplicatedAsObject a, ReplicaClock m, MonadE m) => a -> StateT (Object (ObjectORSet a)) m (Object a) Source #

Encode an object and add a reference to it to the OR-Set

addRef :: (ReplicaClock m, MonadE m) => Object a -> StateT (Object (ObjectORSet a)) m () Source #

Add a reference to the object to the OR-Set

addValue :: (ReplicatedAsPayload a, ReplicaClock m, MonadE m) => a -> StateT (Object (ORSet a)) m () Source #

Add atomic value to the OR-Set

removeRef :: (MonadE m, ReplicaClock m) => Object a -> StateT (Object (ObjectORSet a)) m () Source #

Remove an object reference from the OR-Set

removeValue :: (ReplicatedAsPayload a, MonadE m, ReplicaClock m) => a -> StateT (Object (ORSet a)) m () Source #

Remove an atomic value from the OR-Set