Development.IDE.Graph.Internal.Database

hls-graph-2.9.0.0: Haskell Language Server internal graph API

Safe Haskell | None
Language | GHC2021

Development.IDE.Graph.Internal.Database

Synopsis

- compute :: Database -> Stack -> Key -> RunMode -> Maybe Result -> IO Result
- newDatabase :: Dynamic -> TheRules -> IO Database
- incDatabase :: Database -> Maybe [Key] -> IO ()
- build :: (Traversable f, RuleResult key ~ value, Typeable key, Show key, Hashable key, Eq key, Typeable value) => Database -> Stack -> f key -> IO (f Key, f value)
- getDirtySet :: Database -> IO [(Key, Int)]
- getKeysAndVisitAge :: Database -> IO [(Key, Int)]

# Documentation

compute :: Database -> Stack -> Key -> RunMode -> Maybe Result -> IO Result #

Compute a key.

newDatabase :: Dynamic -> TheRules -> IO Database #

incDatabase :: Database -> Maybe [Key] -> IO () #

Increment the step and mark dirty. Assumes that the database is not running a build

build :: (Traversable f, RuleResult key ~ value, Typeable key, Show key, Hashable key, Eq key, Typeable value) => Database -> Stack -> f key -> IO (f Key, f value) #

Unwrap and build a list of keys in parallel

getDirtySet :: Database -> IO [(Key, Int)] #

Returns the set of dirty keys annotated with their age (in # of builds)

getKeysAndVisitAge :: Database -> IO [(Key, Int)] #

Returns an approximation of the database keys, annotated with how long ago (in # builds) they were visited