summaryrefslogtreecommitdiff
path: root/HsBot/Base/Env.hs
blob: a4aca5742c549e23d5a538299bb95af63dc63982 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
module HsBot.Base.Env where

import HsBot.Base.Conf
import HsBot.Base.State

type SendMessage = String -> IO ()
type DispatchFunction = String -> SendMessage -> Env -> IO Env

data Env = DispatchEnv State Conf DispatchFunction | Env State Conf

castEnv :: Env -> Env
castEnv (DispatchEnv state conf _) = Env state conf

envGetInt :: String -> Env -> Int
envGetInt key (Env _ conf) = getUnwrappedInt key conf
envGetInt key env = envGetInt key (castEnv env)

envGet :: String -> Env -> String
envGet key (Env _ conf) = getUnwrapped key conf
envGet key env = envGet key (castEnv env)

envState :: Env -> State
envState (Env state _) = state
envState env = envState (castEnv env)