packages feed

keiro-dsl-0.21.0.0: test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/Domain.hs

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

import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Conformance.HistoryDependentHoles.Bindings qualified as Bindings
import Conformance.HistoryDependentHoles.Domain (PropertyValues)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)

data AssignmentVertex = AssignmentActive
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data SetPropertyData = SetPropertyData
  { key :: !Text
  , value :: !Text
  }
  deriving stock (Generic, Eq, Show)

data ClearPropertyData = ClearPropertyData
  { key :: !Text
  }
  deriving stock (Generic, Eq, Show)

data TouchData = TouchData
  { note :: !Text
  }
  deriving stock (Generic, Eq, Show)

data AssignmentCommand = SetProperty !SetPropertyData
  | ClearProperty !ClearPropertyData
  | Touch !TouchData
  deriving stock (Generic, Eq, Show)

data PropertySetData = PropertySetData
  { key :: !Text
  , value :: !Text
  }
  deriving stock (Generic, Eq, Show)

data PropertyClearedData = PropertyClearedData
  { key :: !Text
  }
  deriving stock (Generic, Eq, Show)

data TouchedData = TouchedData
  { note :: !Text
  }
  deriving stock (Generic, Eq, Show)

data AssignmentEvent = PropertySet !PropertySetData
  | PropertyCleared !PropertyClearedData
  | Touched !TouchedData
  deriving stock (Generic, Eq, Show)

type AssignmentRegs =
  '[ '("values", PropertyValues)
   ]

initialAssignmentRegs :: RegFile AssignmentRegs
initialAssignmentRegs =
  RCons (Proxy @"values") Bindings.emptyPropertyValues RNil

$(deriveAggregateCtorsAll ''AssignmentCommand ''AssignmentRegs)



$(deriveWireCtorsAll ''AssignmentEvent)