text-iso8601-0.1: bench/text-iso8601-bench.hs
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
import Data.Text (Text)
import Test.Tasty.Bench (defaultMain, bench, nf)
import qualified Data.Attoparsec.Text as A
import qualified Data.Attoparsec.Time as A
import Data.Time.FromText (parseUTCTime)
main :: IO ()
main = defaultMain
[ bench "text" $ nf parseUTCTime input1
, bench "atto" $ nf (runAtto A.utcTime) input1
]
input1 :: Text
input1 = "2023-06-09T16:53:55Z"
{-# NOINLINE input1 #-}
runAtto :: A.Parser a -> Text -> Either String a
runAtto p t = A.parseOnly (p <* A.endOfInput) t