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

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

type SendMessage = String -> IO ()
type Dispatch = String -> SendMessage -> Env -> IO Env
data Env = DispatchEnv State Conf Dispatch | 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)