ron-0.3: RON, RON-RDT, and RON-Schema

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

:: (ReplicatedAsObject a, Replicated b, ReplicaClock m, MonadError String 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, I Replicated)] -> m (Object a) Source #

Create LWW object from a list of named fields.

readField Source #

Arguments

:: (MonadError String m, MonadState (Object a) m, ReplicatedAsObject a, Replicated b) 
=> UUID

Field name

-> m b 

Decode field value

viewField Source #

Arguments

:: Replicated a 
=> UUID

Field name

-> StateChunk

LWW object chunk

-> StateFrame 
-> Either String a 

Decode field value

zoomField Source #

Arguments

:: (ReplicatedAsObject outer, MonadError String 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