module BuildBox.Aspect.Detail
( Detail (..)
, Timed (..)
, Used (..)
, Sized (..))
where
import BuildBox.Pretty
data Detail
= DetailTimed Timed
| DetailUsed Used
| DetailSized Sized
deriving (Eq, Ord, Show, Read)
data Timed
= TotalWall
| TotalCpu
| TotalSys
| KernelWall
| KernelCpu
| KernelSys
deriving (Eq, Ord, Show, Read, Enum)
instance Pretty Timed where
ppr timed
= case timed of
TotalWall -> text "runtime (wall clock)"
TotalCpu -> text "runtime (cpu usage)"
TotalSys -> text "runtime (sys usage)"
KernelWall -> text "kernel runtime (wall clock)"
KernelCpu -> text "kernel runtime (cpu usage)"
KernelSys -> text "kernel runtime (sys usage)"
data Used
= HeapMax
| HeapAlloc
deriving (Eq, Ord, Show, Read, Enum)
instance Pretty Used where
ppr used
= case used of
HeapMax -> text "maximum heap usage"
HeapAlloc -> text "heap allocation"
data Sized
= ExeSize
deriving (Eq, Ord, Show, Read, Enum)
instance Pretty Sized where
ppr sized
= case sized of
ExeSize -> text "executable size"