| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Development.IDE.Graph.Rule
Synopsis
- addRule :: (RuleResult key ~ value, ShakeValue key, Typeable value, NFData value, Show value) => (key -> Maybe ByteString -> RunMode -> Action (RunResult value)) -> Rules ()
- data RunMode
- data RunChanged
- data RunResult value = RunResult {
- runChanged :: RunChanged
- runStore :: ByteString
- runValue :: value
- apply :: (RuleResult key ~ value, ShakeValue key, Typeable value) => [key] -> Action [value]
- apply1 :: (RuleResult key ~ value, ShakeValue key, Typeable value) => key -> Action value
Defining builtin rules
Functions and types for defining new types of Shake rules.
addRule :: (RuleResult key ~ value, ShakeValue key, Typeable value, NFData value, Show value) => (key -> Maybe ByteString -> RunMode -> Action (RunResult value)) -> Rules () Source #
What mode a rule is running in, passed as an argument to BuiltinRun.
Constructors
| RunDependenciesSame | My dependencies have not changed. |
| RunDependenciesChanged | At least one of my dependencies from last time have changed, or I have no recorded dependencies. |
data RunChanged #
How the output of a rule has changed.
Constructors
| ChangedNothing | Nothing has changed. |
| ChangedStore | The stored value has changed, but in a way that should be considered identical (used rarely). |
| ChangedRecomputeSame | I recomputed the value and it was the same. |
| ChangedRecomputeDiff | I recomputed the value and it was different. |
Instances
| Eq RunChanged | |
Defined in Development.Shake.Internal.Core.Types | |
| Show RunChanged | |
Defined in Development.Shake.Internal.Core.Types Methods showsPrec :: Int -> RunChanged -> ShowS # show :: RunChanged -> String # showList :: [RunChanged] -> ShowS # | |
| NFData RunChanged | |
Defined in Development.Shake.Internal.Core.Types Methods rnf :: RunChanged -> () # | |
The result of BuiltinRun.
Constructors
| RunResult | |
Fields
| |
Instances
Calling builtin rules
Wrappers around calling Shake rules. In general these should be specialised to a builtin rule.
apply :: (RuleResult key ~ value, ShakeValue key, Typeable value) => [key] -> Action [value] Source #
apply1 :: (RuleResult key ~ value, ShakeValue key, Typeable value) => key -> Action value Source #