ghc-build-stats-0.1.0.0: src/ChromeTracingExport.hs
{-# LANGUAGE OverloadedStrings #-}
module ChromeTracingExport where
import Data.Aeson (Encoding, (.=))
import Data.Text (Text)
import qualified Data.Aeson as JSON
mkCompleteEvent
:: Text -- ^ name
-> Text -- ^ category
-> Double -- ^ timestamp
-> Double -- ^ duration
-> Int -- ^ pid
-> Int -- ^ thread id
-> Encoding
mkCompleteEvent name cat timestamp duration pid tid =
JSON.pairs $
("name" .= name)
<> ("cat" .= cat)
<> ("ts" .= timestamp)
<> ("dur" .= duration)
<> ("pid" .= pid)
<> ("tid" .= (tid + 1))
<> ("ph" .= ("X" :: Text)) -- indicates Complete Event