packages feed

hydra-0.13.0: src/gen-main/haskell/Hydra/Encode/Accessors.hs

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

-- | Term encoders for hydra.accessors

module Hydra.Encode.Accessors where

import qualified Hydra.Accessors as Accessors
import qualified Hydra.Core as Core
import qualified Hydra.Encode.Core as Core_
import qualified Hydra.Lib.Lists as Lists
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.ByteString as B
import qualified Data.Int as I
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S

accessorEdge :: (Accessors.AccessorEdge -> Core.Term)
accessorEdge x = (Core.TermRecord (Core.Record {
  Core.recordTypeName = (Core.Name "hydra.accessors.AccessorEdge"),
  Core.recordFields = [
    Core.Field {
      Core.fieldName = (Core.Name "source"),
      Core.fieldTerm = (accessorNode (Accessors.accessorEdgeSource x))},
    Core.Field {
      Core.fieldName = (Core.Name "path"),
      Core.fieldTerm = (accessorPath (Accessors.accessorEdgePath x))},
    Core.Field {
      Core.fieldName = (Core.Name "target"),
      Core.fieldTerm = (accessorNode (Accessors.accessorEdgeTarget x))}]}))

accessorGraph :: (Accessors.AccessorGraph -> Core.Term)
accessorGraph x = (Core.TermRecord (Core.Record {
  Core.recordTypeName = (Core.Name "hydra.accessors.AccessorGraph"),
  Core.recordFields = [
    Core.Field {
      Core.fieldName = (Core.Name "nodes"),
      Core.fieldTerm = ((\xs -> Core.TermList (Lists.map accessorNode xs)) (Accessors.accessorGraphNodes x))},
    Core.Field {
      Core.fieldName = (Core.Name "edges"),
      Core.fieldTerm = ((\xs -> Core.TermList (Lists.map accessorEdge xs)) (Accessors.accessorGraphEdges x))}]}))

accessorNode :: (Accessors.AccessorNode -> Core.Term)
accessorNode x = (Core.TermRecord (Core.Record {
  Core.recordTypeName = (Core.Name "hydra.accessors.AccessorNode"),
  Core.recordFields = [
    Core.Field {
      Core.fieldName = (Core.Name "name"),
      Core.fieldTerm = (Core_.name (Accessors.accessorNodeName x))},
    Core.Field {
      Core.fieldName = (Core.Name "label"),
      Core.fieldTerm = ((\x -> Core.TermLiteral (Core.LiteralString x)) (Accessors.accessorNodeLabel x))},
    Core.Field {
      Core.fieldName = (Core.Name "id"),
      Core.fieldTerm = ((\x -> Core.TermLiteral (Core.LiteralString x)) (Accessors.accessorNodeId x))}]}))

accessorPath :: (Accessors.AccessorPath -> Core.Term)
accessorPath x = (Core.TermWrap (Core.WrappedTerm {
  Core.wrappedTermTypeName = (Core.Name "hydra.accessors.AccessorPath"),
  Core.wrappedTermBody = ((\xs -> Core.TermList (Lists.map termAccessor xs)) (Accessors.unAccessorPath x))}))

termAccessor :: (Accessors.TermAccessor -> Core.Term)
termAccessor x = case x of
  Accessors.TermAccessorAnnotatedBody -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "annotatedBody"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorApplicationFunction -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "applicationFunction"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorApplicationArgument -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "applicationArgument"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorLambdaBody -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "lambdaBody"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorUnionCasesDefault -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "unionCasesDefault"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorUnionCasesBranch v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "unionCasesBranch"),
      Core.fieldTerm = (Core_.name v1)}}))
  Accessors.TermAccessorLetBody -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "letBody"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorLetBinding v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "letBinding"),
      Core.fieldTerm = (Core_.name v1)}}))
  Accessors.TermAccessorListElement v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "listElement"),
      Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v1)))}}))
  Accessors.TermAccessorMapKey v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "mapKey"),
      Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v1)))}}))
  Accessors.TermAccessorMapValue v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "mapValue"),
      Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v1)))}}))
  Accessors.TermAccessorMaybeTerm -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "maybeTerm"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorProductTerm v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "productTerm"),
      Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v1)))}}))
  Accessors.TermAccessorRecordField v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "recordField"),
      Core.fieldTerm = (Core_.name v1)}}))
  Accessors.TermAccessorSetElement v1 -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "setElement"),
      Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v1)))}}))
  Accessors.TermAccessorSumTerm -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "sumTerm"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorTypeLambdaBody -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "typeLambdaBody"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorTypeApplicationTerm -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "typeApplicationTerm"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorInjectionTerm -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "injectionTerm"),
      Core.fieldTerm = Core.TermUnit}}))
  Accessors.TermAccessorWrappedTerm -> (Core.TermUnion (Core.Injection {
    Core.injectionTypeName = (Core.Name "hydra.accessors.TermAccessor"),
    Core.injectionField = Core.Field {
      Core.fieldName = (Core.Name "wrappedTerm"),
      Core.fieldTerm = Core.TermUnit}}))