keiro-dsl-0.9.0.0: test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/StructuralProjections.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-- @generated by keiro-dsl 0.8.0.0 (language keiro-dsl 4) from context aggregate-scalar-expressions mapped structural facade; do not edit.
-- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime.
-- Int, Natural, and UTCTime belong to Keiki's ordered subset.
module Generated.AggregateScalarExpressions.StructuralProjections
( limitsCeilingWitness
, limitsMinimumWitness
) where
import Data.Text (Text)
import Data.Time (UTCTime)
import Numeric.Natural (Natural)
import Keiro.Codec.Structural (bindingToShape)
import Keiki.Core (FieldProjection (..), FieldWitness, fieldWitness)
import Generated.AggregateScalarExpressions.Structural.Shape.Limits qualified
import ScalarExpressions.Bindings qualified
import ScalarExpressions.Domain qualified
data LimitsCeilingProjection
instance FieldProjection LimitsCeilingProjection where
type FieldName LimitsCeilingProjection = "/ceiling"
type FieldOwner LimitsCeilingProjection = ScalarExpressions.Domain.Limits
type FieldResult LimitsCeilingProjection = Natural
fieldShapeId _ = "scalar-expressions.Limits.v1"
projectFieldValue _ owner = Generated.AggregateScalarExpressions.Structural.Shape.Limits.ceiling (bindingToShape ScalarExpressions.Bindings.limitsBinding owner)
limitsCeilingWitness :: FieldWitness LimitsCeilingProjection
limitsCeilingWitness = fieldWitness @LimitsCeilingProjection
data LimitsMinimumProjection
instance FieldProjection LimitsMinimumProjection where
type FieldName LimitsMinimumProjection = "/minimum"
type FieldOwner LimitsMinimumProjection = ScalarExpressions.Domain.Limits
type FieldResult LimitsMinimumProjection = Integer
fieldShapeId _ = "scalar-expressions.Limits.v1"
projectFieldValue _ owner = Generated.AggregateScalarExpressions.Structural.Shape.Limits.minimum (bindingToShape ScalarExpressions.Bindings.limitsBinding owner)
limitsMinimumWitness :: FieldWitness LimitsMinimumProjection
limitsMinimumWitness = fieldWitness @LimitsMinimumProjection