packages feed

hydra-kernel-0.16.0: src/main/haskell/Hydra/Encode/Json/Model.hs

-- Note: this is an automatically generated file. Do not edit.
-- | Term encoders for hydra.json.model

module Hydra.Encode.Json.Model where
import qualified Hydra.Core as Core
import qualified Hydra.Encode.Core as EncodeCore
import qualified Hydra.Json.Model as Model
import qualified Hydra.Haskell.Lib.Lists as Lists
import qualified Hydra.Haskell.Lib.Pairs as Pairs
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
-- | Encoder for hydra.json.model.Value
value :: Model.Value -> Core.Term
value x =
    case x of
      Model.ValueArray v0 -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.json.model.Value"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "array"),
          Core.fieldTerm = (Core.TermList (Lists.map value v0))}})
      Model.ValueBoolean v0 -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.json.model.Value"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean v0))}})
      Model.ValueNull -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.json.model.Value"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = Core.TermUnit}})
      Model.ValueNumber v0 -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.json.model.Value"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "number"),
          Core.fieldTerm = (Core.TermLiteral (Core.LiteralDecimal v0))}})
      Model.ValueObject v0 -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.json.model.Value"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "object"),
          Core.fieldTerm = (Core.TermList (Lists.map (\p -> Core.TermPair (Pairs.bimap (\x -> Core.TermLiteral (Core.LiteralString x)) value p)) v0))}})
      Model.ValueString v0 -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.json.model.Value"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString v0))}})