packages feed

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