Trace.Hpc.Mix

hpc-0.6.0.3: Code Coverage Library for Haskell

Safe Haskell | Safe
Language | Haskell98

Trace.Hpc.Mix

Description

Datatypes and file-access routines for the per-module (`.mix`) indexes used by Hpc.

Synopsis

- data Mix = Mix FilePath UTCTime Hash Int [MixEntry]
- type MixEntry = (HpcPos, BoxLabel)
- data BoxLabel
  - = ExpBox Bool
  - | TopLevelBox [String]
  - | LocalBox [String]
  - | BinBox CondBox Bool
- data CondBox
  - = GuardBinBox
  - | CondBinBox
  - | QualBinBox
- mixCreate :: String -> String -> Mix -> IO ()
- readMix :: [String] -> Either String TixModule -> IO Mix
- createMixEntryDom :: Show a => [(HpcPos, a)] -> [MixEntryDom [a]]
- type MixEntryDom a = Tree (HpcPos, a)

# Documentation

data Mix #

`Mix` is the information about a modules static properties, like location of Tix's in a file.

Tab stops are the size of a tab in the provided line:column values.

- In GHC, this is 1 (a tab is just a character)
- With `hpc-tracer`, this is 8 (a tab represents several spaces).

Constructors

Mix FilePath UTCTime Hash Int [MixEntry] |

Instances

Eq Mix # |
Methods (==) :: Mix -> Mix -> Bool # (/=) :: Mix -> Mix -> Bool #
Read Mix # |
Methods readsPrec :: Int -> ReadS Mix Source # readList :: ReadS [Mix] Source # readPrec :: ReadPrec Mix Source # readListPrec :: ReadPrec [Mix] Source #
Show Mix # |
Methods showsPrec :: Int -> Mix -> ShowS Source # show :: Mix -> String Source # showList :: [Mix] -> ShowS Source #

type MixEntry = (HpcPos, BoxLabel) #

data BoxLabel #

Constructors

ExpBox Bool |
TopLevelBox [String] |
LocalBox [String] |
BinBox CondBox Bool |

Instances

Eq BoxLabel # |
Methods (==) :: BoxLabel -> BoxLabel -> Bool # (/=) :: BoxLabel -> BoxLabel -> Bool #
Ord BoxLabel # |
Methods compare :: BoxLabel -> BoxLabel -> Ordering # (<) :: BoxLabel -> BoxLabel -> Bool # (<=) :: BoxLabel -> BoxLabel -> Bool # (>) :: BoxLabel -> BoxLabel -> Bool # (>=) :: BoxLabel -> BoxLabel -> Bool # max :: BoxLabel -> BoxLabel -> BoxLabel # min :: BoxLabel -> BoxLabel -> BoxLabel #
Read BoxLabel # |
Methods readsPrec :: Int -> ReadS BoxLabel Source # readList :: ReadS [BoxLabel] Source # readPrec :: ReadPrec BoxLabel Source # readListPrec :: ReadPrec [BoxLabel] Source #
Show BoxLabel # |
Methods showsPrec :: Int -> BoxLabel -> ShowS Source # show :: BoxLabel -> String Source # showList :: [BoxLabel] -> ShowS Source #
HpcHash BoxLabel # |
Methods toHash :: BoxLabel -> Hash #

data CondBox #

Constructors

GuardBinBox |
CondBinBox |
QualBinBox |

Instances

Eq CondBox # |
Methods (==) :: CondBox -> CondBox -> Bool # (/=) :: CondBox -> CondBox -> Bool #
Ord CondBox # |
Methods compare :: CondBox -> CondBox -> Ordering # (<) :: CondBox -> CondBox -> Bool # (<=) :: CondBox -> CondBox -> Bool # (>) :: CondBox -> CondBox -> Bool # (>=) :: CondBox -> CondBox -> Bool # max :: CondBox -> CondBox -> CondBox # min :: CondBox -> CondBox -> CondBox #
Read CondBox # |
Methods readsPrec :: Int -> ReadS CondBox Source # readList :: ReadS [CondBox] Source # readPrec :: ReadPrec CondBox Source # readListPrec :: ReadPrec [CondBox] Source #
Show CondBox # |
Methods showsPrec :: Int -> CondBox -> ShowS Source # show :: CondBox -> String Source # showList :: [CondBox] -> ShowS Source #
HpcHash CondBox # |
Methods toHash :: CondBox -> Hash #

mixCreate #

Arguments

:: String | Dir Name
-> String | module Name
-> Mix | Mix DataStructure
-> IO () |

Create is mix file.

readMix #

Arguments

:: [String] | Dir Names
-> Either String TixModule | module wanted
-> IO Mix |

Read a mix file.

createMixEntryDom :: Show a => [(HpcPos, a)] -> [MixEntryDom [a]] #

type MixEntryDom a = Tree (HpcPos, a) #