packages feed

keiro-dsl-0.18.0.0: test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/Domain.hs

{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.18.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.
module Generated.CheckedMappingReplay.ReplayTarget.Domain where

import Data.Proxy (Proxy (..))
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Generated.CheckedMappingReplay.Nominals (RetainedId)
import Conformance.CheckedMappingReplay.Bindings qualified as Bindings
import Conformance.CheckedMappingReplay.Domain (ReplayEnvelope)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)

data ReplayTargetVertex = ReplayTargetReady
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data StoreData = StoreData
  { retainedId :: !RetainedId
  , envelope :: !ReplayEnvelope
  }
  deriving stock (Generic, Eq, Show)

data ReplayTargetCommand = Store !StoreData
  deriving stock (Generic, Eq, Show)

data StoredData = StoredData
  { retainedId :: !RetainedId
  , envelope :: !ReplayEnvelope
  }
  deriving stock (Generic, Eq, Show)

data ReplayTargetEvent = Stored !StoredData
  deriving stock (Generic, Eq, Show)

type ReplayTargetRegs =
  '[ '("latest", ReplayEnvelope)
   ]

initialReplayTargetRegs :: RegFile ReplayTargetRegs
initialReplayTargetRegs =
  RCons (Proxy @"latest") Bindings.initialReplayEnvelope RNil

$(deriveAggregateCtorsAll ''ReplayTargetCommand ''ReplayTargetRegs)



$(deriveWireCtorsAll ''ReplayTargetEvent)