packages feed

registry-options-0.1.0.0: test/Test/Data/Registry/Options/Maker.hs

module Test.Data.Registry.Options.Maker where

import Protolude

data Method = Debug | Release | Profile
  deriving (Eq, Show)

data Maker
  = MakerWipe Wipe
  | MakerBuild Build
  | MakerTest Test
  | MakerMakerHelp {makerHelp :: Bool}
  | MakerMakerVersion {makerVersion :: Bool}
  deriving (Eq, Show)

data Wipe = Wipe deriving (Eq, Show)

data Build = Build
  { buildThreads :: Int,
    buildMethod :: Method,
    buildFiles :: [FilePath]
  }
  deriving (Eq, Show)

data Test = Test
  { testThreads :: Int,
    testExtra :: [Text]
  }
  deriving (Eq, Show)

methodDecoder :: Text -> Either Text Method
methodDecoder "release" = pure Release
methodDecoder "debug" = pure Debug
methodDecoder "profile" = pure Profile
methodDecoder _ = Left "expected release, debug, profile"