keiro-dsl-0.10.0.0: test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Domain.hs
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from aggregate ArtifactCatalog; do not edit.
module Generated.StructuralConformance.ArtifactCatalog.Domain where
import Data.Proxy (Proxy (..))
import Data.Text (Text)
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)