supposedly working parametric lenses, needs testing
[mTask.git] / Utils / SDS.icl
1 implementation module Utils.SDS
2
3 import iTasks
4 import iTasks._Framework.Store
5 import Devices.mTaskDevice
6 import Shares.mTaskShare
7 import Tasks.Examples
8 import qualified Data.Map as DM
9 from Data.Func import $
10
11 memoryShare :: String a -> Shared a | iTask a
12 memoryShare s d = sdsFocus s $ memoryStore "" $ Just d
13
14 deviceStore :: Shared [MTaskDevice]
15 deviceStore = sharedStore "mTaskDevices" []
16
17 bcStateStore :: Shared BCState
18 bcStateStore = memoryShare "mTaskBCState" zero
19
20 mTaskTaskStore :: Shared [String]
21 mTaskTaskStore = memoryShare "mTaskTasks" $ 'DM'.keys allmTasks