packages feed

criterion-cmp-0.1.0.0: src/Types.hs

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Types where

import Data.Csv
import Data.String (IsString (..))

-- | The name of a set of benchmark results from a single run.
newtype RunName = RunName { getRunName :: String }
  deriving (Eq, Ord, Show, FromField)

instance IsString RunName where
    fromString = RunName

-- | The name of a benchmark
newtype BenchName = BenchName { getBenchName :: String }
  deriving (Eq, Ord, Show, FromField)

data RowName
    = RowBenchName BenchName
    | RowMean
  deriving (Eq, Ord, Show)

getRowName :: RowName -> String
getRowName (RowBenchName bn) = getBenchName bn
getRowName RowMean           = "Geometric mean"

data Stats = Stats
    { statsMean, statsMeanLB, statsMeanUB :: Double
    , statsStd, statsStdLB, statsStdUB    :: Double
    }
 deriving (Show)