packages feed

hydra-build-0.17.5: src/main/haskell/Hydra/Encode/Build/Comparereport.hs

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

-- | Term encoders for hydra.build.comparereport

module Hydra.Encode.Build.Comparereport where

import qualified Hydra.Build.Comparereport as Comparereport
import qualified Hydra.Core as Core
import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci

-- | Encoder for hydra.build.comparereport.CompareReport
compareReport :: Comparereport.CompareReport -> Core.Term
compareReport x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.build.comparereport.CompareReport"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "rows"),
          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map moduleCompare xs)) (Comparereport.compareReportRows x))},
        Core.Field {
          Core.fieldName = (Core.Name "byteEqCount"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Comparereport.compareReportByteEqCount x))},
        Core.Field {
          Core.fieldName = (Core.Name "total"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Comparereport.compareReportTotal x))}]})

-- | Encoder for hydra.build.comparereport.CompareStatus
compareStatus :: Comparereport.CompareStatus -> Core.Term
compareStatus x =
    case x of
      Comparereport.CompareStatusByteEq -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.comparereport.CompareStatus"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "byteEq"),
          Core.fieldTerm = Core.TermUnit}})
      Comparereport.CompareStatusDiffer -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.comparereport.CompareStatus"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "differ"),
          Core.fieldTerm = Core.TermUnit}})
      Comparereport.CompareStatusMissing -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.comparereport.CompareStatus"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "missing"),
          Core.fieldTerm = Core.TermUnit}})

-- | Encoder for hydra.build.comparereport.ModuleCompare
moduleCompare :: Comparereport.ModuleCompare -> Core.Term
moduleCompare x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.build.comparereport.ModuleCompare"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "module"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Comparereport.moduleCompareModule x))},
        Core.Field {
          Core.fieldName = (Core.Name "status"),
          Core.fieldTerm = (compareStatus (Comparereport.moduleCompareStatus x))},
        Core.Field {
          Core.fieldName = (Core.Name "ourSize"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Comparereport.moduleCompareOurSize x))},
        Core.Field {
          Core.fieldName = (Core.Name "canonSize"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Comparereport.moduleCompareCanonSize x))},
        Core.Field {
          Core.fieldName = (Core.Name "diffLines"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 x2))) (Comparereport.moduleCompareDiffLines x))}]})