crdt-10.0: Conflict-free replicated data types

Safe HaskellNone
LanguageHaskell2010

CRDT.Cm.RGA

Description

Replicated Growable Array (RGA)

Documentation

data RGA a Source #

Constructors

OpAddAfter (Maybe VertexId) a VertexId
  • id of previous vertex, Nothing means the beginning
  • atom
  • id of this vertex
OpRemove VertexId 

Instances

Eq a => Eq (RGA a) Source # 

Methods

(==) :: RGA a -> RGA a -> Bool #

(/=) :: RGA a -> RGA a -> Bool #

Show a => Show (RGA a) Source # 

Methods

showsPrec :: Int -> RGA a -> ShowS #

show :: RGA a -> String #

showList :: [RGA a] -> ShowS #

(AsEmpty a, Ord a) => CmRDT (RGA a) Source # 

Associated Types

type Intent (RGA a) :: * Source #

type Payload (RGA a) :: * Source #

Methods

initial :: Payload (RGA a) Source #

makeOp :: Clock m => Intent (RGA a) -> Payload (RGA a) -> Maybe (m (RGA a)) Source #

apply :: RGA a -> Payload (RGA a) -> Payload (RGA a) Source #

CausalOrd (RGA a) Source # 

Methods

precedes :: RGA a -> RGA a -> Bool Source #

type Intent (RGA a) Source # 
type Intent (RGA a) = RgaIntent a
type Payload (RGA a) Source # 
type Payload (RGA a) = RgaPayload a

data RgaIntent a Source #

Constructors

AddAfter (Maybe VertexId) a

Nothing means the beginning

Remove VertexId 

Instances

data RgaPayload a Source #

Constructors

RgaPayload 

Fields

Instances

Eq a => Eq (RgaPayload a) Source # 

Methods

(==) :: RgaPayload a -> RgaPayload a -> Bool #

(/=) :: RgaPayload a -> RgaPayload a -> Bool #

Show a => Show (RgaPayload a) Source # 

load :: Vector (VertexId, a) -> RgaPayload a Source #