packages feed

hw-rankselect-0.13.0.0: app/App/Commands/Options/Type.hs

{-# LANGUAGE DeriveGeneric         #-}
{-# LANGUAGE DuplicateRecordFields #-}

module App.Commands.Options.Type where

import Data.Word
import GHC.Generics

data IndexType = CsPoppy | Poppy512 deriving (Eq, Read, Show, Generic)

newtype BuildOptions = BuildOptions
  { indexType :: IndexType
  } deriving (Eq, Show, Generic)

newtype SelectAllOptions = SelectAllOptions
  { indexType :: IndexType
  } deriving (Eq, Show, Generic)

newtype UnitTestOptions = UnitTestOptions
  { name :: String
  } deriving (Eq, Show, Generic)

data ValidateOptions = ValidateOptions
  { indexType :: IndexType
  , file      :: FilePath
  } deriving (Eq, Show, Generic)

newtype ValidateState = ValidateState
  { cumulativePopCount :: Word64
  } deriving (Eq, Show, Generic)

emptyValidateState :: ValidateState
emptyValidateState = ValidateState 0