packages feed

gipeda-0.1: src/BenchmarksInCSV.hs

module BenchmarksInCSV where

import Data.Csv hiding (encode)
import qualified Data.ByteString.Lazy as BS
import qualified Data.Vector as V
import Data.Char
import Data.Functor

type Benchmark = String

benchmarksInCSVFile :: FilePath -> IO [Benchmark]
benchmarksInCSVFile fname = benchmarksInCSV <$> BS.readFile fname

benchmarksInCSV :: BS.ByteString -> [Benchmark]
benchmarksInCSV s =
    [ n
    | (n,v) <- either error V.toList $ decodeWith ssv NoHeader s
    , const True (v::String)
    ]
    
ssv :: DecodeOptions
ssv = defaultDecodeOptions {
    decDelimiter = fromIntegral (ord ';')
}