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

Safe HaskellNone
LanguageHaskell2010

RON.Data.LWW

Description

LWW-per-field RDT

Synopsis

Documentation

newtype LwwPerField Source #

Untyped LWW. Implementation: a map from opRef to the original op.

Constructors

LwwPerField (Map UUID Op) 

assignField Source #

Arguments

:: (Replicated b, ReplicaClock m, MonadE m, MonadState (Object a) m) 
=> UUID

Field name

-> b

Value (from untyped world)

-> m () 

Assign a value to a field

lwwType :: UUID Source #

Name-UUID to use as LWW type marker.

newObject :: ReplicaClock m => [(UUID, Instance Replicated)] -> m (Object a) Source #

Create LWW object from a list of named fields.

readField Source #

Arguments

:: (MonadE m, MonadState (Object a) m, Replicated b) 
=> UUID

Field name

-> m b 

Decode field value

viewField Source #

Arguments

:: (Replicated a, MonadE m) 
=> UUID

Field name

-> StateChunk

LWW object chunk

-> StateFrame 
-> m a 

Decode field value

zoomField Source #

Arguments

:: MonadE m 
=> UUID

Field name

-> StateT (Object inner) m a

Nested object modifier

-> StateT (Object outer) m a 

Anti-lens to an object inside a specified field