Safe Haskell | None |
---|
All the building blocks to allow rules to build variables.
- newVar :: (Typeable a, Show a, Eq a) => VarName -> a -> Nomex (Maybe (V a))
- newVar_ :: (Typeable a, Show a, Eq a) => VarName -> a -> Nomex (V a)
- readVar :: (Typeable a, Show a, Eq a) => V a -> Nomex (Maybe a)
- readVar_ :: forall a. (Typeable a, Show a, Eq a) => V a -> Nomex a
- writeVar :: (Typeable a, Show a, Eq a) => V a -> a -> Nomex Bool
- writeVar_ :: (Typeable a, Show a, Eq a) => V a -> a -> Nomex ()
- modifyVar :: (Typeable a, Show a, Eq a) => V a -> (a -> a) -> Nomex ()
- delVar :: V a -> Nomex Bool
- delVar_ :: V a -> Nomex ()
- data VEvent a
- data MsgVar a = MsgVar {}
- msgVar :: String -> MsgVar a
- newMsgVar :: (Typeable a, Show a, Eq a) => VarName -> a -> Nomex (Maybe (MsgVar a))
- newMsgVar_ :: (Typeable a, Show a, Eq a) => VarName -> a -> Nomex (MsgVar a)
- newMsgVar' :: (Typeable a, Show a, Eq a) => VarName -> a -> (VEvent a -> Nomex ()) -> Nomex (Maybe (MsgVar a))
- writeMsgVar :: (Typeable a, Show a, Eq a) => MsgVar a -> a -> Nomex Bool
- writeMsgVar_ :: (Typeable a, Show a, Eq a) => MsgVar a -> a -> Nomex ()
- readMsgVar :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex (Maybe a)
- readMsgVar_ :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex a
- modifyMsgVar :: (Typeable a, Show a, Eq a) => MsgVar a -> (a -> a) -> Nomex ()
- delMsgVar :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex Bool
- onMsgVarChange :: (Typeable a, Show a, Eq a) => MsgVar a -> (VEvent a -> Nomex ()) -> Nomex ()
- onMsgVarEvent :: (Typeable a, Show a, Eq a) => MsgVar a -> (a -> Nomex b) -> (a -> b -> Nomex ()) -> (b -> Nomex ()) -> Nomex ()
- getMsgVarMessage :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex (Msg (VEvent a))
- getMsgVarData :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex (Maybe a)
- getMsgVarData_ :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex a
- getMsgVarName :: (Typeable a, Show a, Eq a) => MsgVar a -> String
- type ArrayVar i a = MsgVar [(i, Maybe a)]
- newArrayVar :: (Typeable a, Show a, Eq a, Typeable i, Show i, Eq i) => VarName -> [i] -> Nomex (Maybe (ArrayVar i a))
- newArrayVar_ :: (Typeable a, Show a, Eq a, Typeable i, Show i, Eq i) => VarName -> [i] -> Nomex (ArrayVar i a)
- newArrayVar' :: (Typeable a, Show a, Eq a, Typeable i, Show i, Eq i) => VarName -> [i] -> (VEvent [(i, Maybe a)] -> Nomex ()) -> Nomex (Maybe (ArrayVar i a))
- newArrayVarOnce :: (Ord i, Typeable a, Show a, Eq a, Typeable i, Show i) => VarName -> [i] -> (VEvent [(i, Maybe a)] -> Nomex ()) -> Nomex (Maybe (ArrayVar i a))
- cleanOnFull :: (Typeable a, Show a, Eq a, Ord i, Typeable i, Show i) => ArrayVar i a -> Nomex ()
- isFullArrayVar_ :: (Ord i, Typeable a, Show a, Eq a, Typeable i, Show i) => ArrayVar i a -> Nomex Bool
- putArrayVar :: (Ord i, Typeable a, Show a, Eq a, Typeable i, Show i) => ArrayVar i a -> i -> a -> Nomex Bool
- putArrayVar_ :: (Ord i, Typeable a, Show a, Eq a, Typeable i, Show i) => ArrayVar i a -> i -> a -> Nomex ()
Variables
modifyVar :: (Typeable a, Show a, Eq a) => V a -> (a -> a) -> Nomex ()Source
modify a variable using the provided function
Message Variable
a MsgVar is a variable with a message attached, allowing to trigger registered functions anytime the var if modified
newMsgVar' :: (Typeable a, Show a, Eq a) => VarName -> a -> (VEvent a -> Nomex ()) -> Nomex (Maybe (MsgVar a))Source
onMsgVarChange :: (Typeable a, Show a, Eq a) => MsgVar a -> (VEvent a -> Nomex ()) -> Nomex ()Source
onMsgVarEvent :: (Typeable a, Show a, Eq a) => MsgVar a -> (a -> Nomex b) -> (a -> b -> Nomex ()) -> (b -> Nomex ()) -> Nomex ()Source
getMsgVarMessage :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex (Msg (VEvent a))Source
get the messsage triggered when the array is filled
getMsgVarData :: (Typeable a, Show a, Eq a) => MsgVar a -> Nomex (Maybe a)Source
get the association array
Variable arrays
type ArrayVar i a = MsgVar [(i, Maybe a)]Source
ArrayVar is an indexed array with a signal attached triggered at every change. | each indexed elements starts empty (value=Nothing).
newArrayVar :: (Typeable a, Show a, Eq a, Typeable i, Show i, Eq i) => VarName -> [i] -> Nomex (Maybe (ArrayVar i a))Source
initialize an empty ArrayVar
newArrayVar_ :: (Typeable a, Show a, Eq a, Typeable i, Show i, Eq i) => VarName -> [i] -> Nomex (ArrayVar i a)Source
newArrayVar' :: (Typeable a, Show a, Eq a, Typeable i, Show i, Eq i) => VarName -> [i] -> (VEvent [(i, Maybe a)] -> Nomex ()) -> Nomex (Maybe (ArrayVar i a))Source
initialize an empty ArrayVar, registering a callback that will be triggered at every change
newArrayVarOnce :: (Ord i, Typeable a, Show a, Eq a, Typeable i, Show i) => VarName -> [i] -> (VEvent [(i, Maybe a)] -> Nomex ()) -> Nomex (Maybe (ArrayVar i a))Source
initialize an empty ArrayVar, registering a callback. the ArrayVar will be deleted when full
cleanOnFull :: (Typeable a, Show a, Eq a, Ord i, Typeable i, Show i) => ArrayVar i a -> Nomex ()Source
isFullArrayVar_ :: (Ord i, Typeable a, Show a, Eq a, Typeable i, Show i) => ArrayVar i a -> Nomex BoolSource