Safe Haskell | None |
---|---|
Language | Haskell2010 |
LWW-per-field RDT
Synopsis
- newtype LwwPerField = LwwPerField (Map UUID Op)
- assignField :: forall a b m. (Replicated b, ReplicaClock m, MonadE m, MonadState (Object a) m) => UUID -> b -> m ()
- lwwType :: UUID
- newObject :: ReplicaClock m => [(UUID, Instance Replicated)] -> m (Object a)
- readField :: (MonadE m, MonadState (Object a) m, Replicated b) => UUID -> m b
- viewField :: (Replicated a, MonadE m) => UUID -> StateChunk -> StateFrame -> m a
- zoomField :: MonadE m => UUID -> StateT (Object inner) m a -> StateT (Object outer) m a
Documentation
newtype LwwPerField Source #
Untyped LWW. Implementation: a map from opRef
to the original op.
LwwPerField (Map UUID Op) |
Instances
Eq LwwPerField Source # | |
Defined in RON.Data.LWW (==) :: LwwPerField -> LwwPerField -> Bool # (/=) :: LwwPerField -> LwwPerField -> Bool # | |
Show LwwPerField Source # | |
Defined in RON.Data.LWW showsPrec :: Int -> LwwPerField -> ShowS # show :: LwwPerField -> String # showList :: [LwwPerField] -> ShowS # | |
Semigroup LwwPerField Source # | |
Defined in RON.Data.LWW (<>) :: LwwPerField -> LwwPerField -> LwwPerField # sconcat :: NonEmpty LwwPerField -> LwwPerField # stimes :: Integral b => b -> LwwPerField -> LwwPerField # | |
Monoid LwwPerField Source # | |
Defined in RON.Data.LWW mempty :: LwwPerField # mappend :: LwwPerField -> LwwPerField -> LwwPerField # mconcat :: [LwwPerField] -> LwwPerField # | |
Reducible LwwPerField Source # | |
Defined in RON.Data.LWW reducibleOpType :: UUID Source # stateFromChunk :: [Op] -> LwwPerField Source # stateToChunk :: LwwPerField -> StateChunk Source # applyPatches :: LwwPerField -> Unapplied -> (LwwPerField, Unapplied) Source # reduceUnappliedPatches :: Unapplied -> Unapplied Source # |
:: (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
newObject :: ReplicaClock m => [(UUID, Instance Replicated)] -> m (Object a) Source #
Create LWW object from a list of named fields.
:: (MonadE m, MonadState (Object a) m, Replicated b) | |
=> UUID | Field name |
-> m b |
Decode field value
:: (Replicated a, MonadE m) | |
=> UUID | Field name |
-> StateChunk | LWW object chunk |
-> StateFrame | |
-> m a |
Decode field value