packages feed

keiro-dsl-0.21.0.0: test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/Domain.hs

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

import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Proof.WorkspaceProof.AssignmentDomain (PropertyValues)
import Proof.WorkspaceProof.AssignmentSupport qualified as AssignmentSupport
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") AssignmentSupport.emptyPropertyValues RNil

$(deriveAggregateCtorsAll ''AssignmentCommand ''AssignmentRegs)



$(deriveWireCtorsAll ''AssignmentEvent)