keiro-dsl-0.11.0.0: test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Domain.hs
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.11.0.0 (language keiro-dsl 4) from aggregate ArtifactCatalog; do not edit.
module Generated.StructuralConformance.ArtifactCatalog.Domain where
import Data.Proxy (Proxy (..))
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Conformance.Structural.Bindings qualified as Bindings
import Conformance.Structural.Domain (ArtifactInfo, Geometry)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data ArtifactCatalogVertex = ArtifactCatalogEmpty | ArtifactCatalogObserved
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
data ObserveArtifactData = ObserveArtifactData
{ artifact :: !ArtifactInfo
, geometry :: !Geometry
, accepted :: !Bool
}
deriving stock (Generic, Eq, Show)
data ArtifactCatalogCommand = ObserveArtifact !ObserveArtifactData
deriving stock (Generic, Eq, Show)
data ArtifactRecordedData = ArtifactRecordedData
{ artifact :: !ArtifactInfo
, geometry :: !Geometry
, accepted :: !Bool
}
deriving stock (Generic, Eq, Show)
data ArtifactAcceptedData = ArtifactAcceptedData
{ accepted :: !Bool
}
deriving stock (Generic, Eq, Show)
data ArtifactCatalogEvent = ArtifactRecorded !ArtifactRecordedData
| ArtifactAccepted !ArtifactAcceptedData
deriving stock (Generic, Eq, Show)
type ArtifactCatalogRegs =
'[ '("currentArtifact", ArtifactInfo)
, '("currentGeometry", Geometry)
, '("acceptedCount", Int)
]
initialArtifactCatalogRegs :: RegFile ArtifactCatalogRegs
initialArtifactCatalogRegs =
RCons (Proxy @"currentArtifact") Bindings.emptyArtifactInfo $
RCons (Proxy @"currentGeometry") Bindings.emptyGeometry $
RCons (Proxy @"acceptedCount") 0 RNil
$(deriveAggregateCtorsAll ''ArtifactCatalogCommand ''ArtifactCatalogRegs)
$(deriveWireCtorsAll ''ArtifactCatalogEvent)