packages feed

eventium-memory-0.2.1: tests/MemoryTestImport.hs

module MemoryTestImport
  ( EmbeddedState (..),
    StreamEmbeddedState,
    GlobalEmbeddedState,
    emptyEmbeddedState,
    setEventMap,
    setProjectionMap,
  )
where

import Eventium.ProjectionCache.Memory
import Eventium.Store.Memory
import Eventium.UUID

data EmbeddedState state event key position
  = EmbeddedState
  { dummyArgument :: Int,
    eventMap :: EventMap event,
    projectionMap :: ProjectionMap key position state
  }

type StreamEmbeddedState state event = EmbeddedState state event UUID EventVersion

type GlobalEmbeddedState state event = EmbeddedState state event () SequenceNumber

emptyEmbeddedState :: EmbeddedState state event key position
emptyEmbeddedState = EmbeddedState 100 emptyEventMap emptyProjectionMap

setEventMap :: EmbeddedState state event key position -> EventMap event -> EmbeddedState state event key position
setEventMap state' em = state' {eventMap = em}

setProjectionMap ::
  EmbeddedState state event key position ->
  ProjectionMap key position state ->
  EmbeddedState state event key position
setProjectionMap state' pm = state' {projectionMap = pm}