toml-parser-1.3.1.2: benchmarker/benchmarker.hs
import Control.Exception (evaluate)
import Data.Time (diffUTCTime, getCurrentTime)
import System.Environment (getArgs)
import Toml (parse)
main :: IO ()
main =
do args <- getArgs
filename <- case args of
[filename] -> pure filename
_ -> fail "Usage: benchmarker <file.toml>"
txt <- readFile filename
evaluate (length txt) -- readFile uses lazy IO, force it to load
start <- getCurrentTime
evaluate (parse txt)
stop <- getCurrentTime
print (stop `diffUTCTime` start)