]> Git — Sourcephile - julm/worksheets.git/blob - src/Recipes.hs
update
[julm/worksheets.git] / src / Recipes.hs
1 module Recipes where
2
3 import Data.Map.Strict qualified as Map
4 import Data.Text.Short qualified as ShortText
5 import Graph.DOT (DOT)
6 import Graph.DOT qualified as DOT
7 import Worksheets.Utils.Prelude
8
9 type Type = ShortText
10 type Name = ShortText
11 data Recipe = Recipe
12 { recipeFunctions :: [Function]
13 }
14 data Function = Function
15 { functionInputs :: Map Name Type
16 , functionSteps :: [ShortText]
17 , functionOutputs :: Map Name Type
18 }
19
20 functionDOT :: Name -> Function -> DOT
21 functionDOT functionName Function{..} =
22 DOT.dotLine $ functionName & DOT.builderQuotedShortText