packages feed

hydra-ext-0.18.0: src/main/haskell/Hydra/Ext/Dsl/Cpp/Environment.hs

-- Note: this is an automatically generated file. Do not edit.

-- | DSL functions for hydra.ext.cpp.environment

module Hydra.Ext.Dsl.Cpp.Environment where

import qualified Hydra.Core.Model as Model
import qualified Hydra.Core.Packaging as Packaging
import qualified Hydra.Core.Typed as Typed
import qualified Hydra.Core.Util as Util
import qualified Hydra.Ext.Cpp.Environment as Environment
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci
import Data.Void
import qualified Data.Map as M

-- | DSL constructor for hydra.ext.cpp.environment.CppEnvironment
cppEnvironment :: Typed.TypedTerm (Util.ModuleNames String) -> Typed.TypedTerm ([Model.Name], (M.Map Model.Name String)) -> Typed.TypedTerm Environment.CppEnvironment
cppEnvironment namespaces boundTypeVariables =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namespaces"),
          Model.fieldTerm = (Typed.unTypedTerm namespaces)},
        Model.Field {
          Model.fieldName = (Model.Name "boundTypeVariables"),
          Model.fieldTerm = (Typed.unTypedTerm boundTypeVariables)}]}))

-- | DSL accessor for the boundTypeVariables field of hydra.ext.cpp.environment.CppEnvironment
cppEnvironmentBoundTypeVariables :: Typed.TypedTerm Environment.CppEnvironment -> Typed.TypedTerm ([Model.Name], (M.Map Model.Name String))
cppEnvironmentBoundTypeVariables x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
        Model.projectionFieldName = (Model.Name "boundTypeVariables")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL name token for hydra.ext.cpp.environment.CppEnvironment
cppEnvironmentCppEnvironment :: Typed.TypedName Environment.CppEnvironment
cppEnvironmentCppEnvironment = Typed.TypedName (Model.Name "hydra.ext.cpp.environment.CppEnvironment")

-- | DSL accessor for the namespaces field of hydra.ext.cpp.environment.CppEnvironment
cppEnvironmentNamespaces :: Typed.TypedTerm Environment.CppEnvironment -> Typed.TypedTerm (Util.ModuleNames String)
cppEnvironmentNamespaces x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
        Model.projectionFieldName = (Model.Name "namespaces")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the boundTypeVariables field of hydra.ext.cpp.environment.CppEnvironment
cppEnvironmentWithBoundTypeVariables :: Typed.TypedTerm Environment.CppEnvironment -> Typed.TypedTerm ([Model.Name], (M.Map Model.Name String)) -> Typed.TypedTerm Environment.CppEnvironment
cppEnvironmentWithBoundTypeVariables original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namespaces"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
              Model.projectionFieldName = (Model.Name "namespaces")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "boundTypeVariables"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the namespaces field of hydra.ext.cpp.environment.CppEnvironment
cppEnvironmentWithNamespaces :: Typed.TypedTerm Environment.CppEnvironment -> Typed.TypedTerm (Util.ModuleNames String) -> Typed.TypedTerm Environment.CppEnvironment
cppEnvironmentWithNamespaces original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namespaces"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "boundTypeVariables"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.cpp.environment.CppEnvironment"),
              Model.projectionFieldName = (Model.Name "boundTypeVariables")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))