diff options
Diffstat (limited to 'Hirc/Types.hs')
-rw-r--r-- | Hirc/Types.hs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Hirc/Types.hs b/Hirc/Types.hs index 2567b53..c516ba7 100644 --- a/Hirc/Types.hs +++ b/Hirc/Types.hs @@ -1,5 +1,11 @@ +{-# LANGUAGE RecordWildCards #-} + module Hirc.Types where +import System.IO (Handle) +import Control.Concurrent.STM (TVar) +import Control.Monad.Reader (ReaderT) + type Command = String type Param = String type Receiver = String @@ -12,6 +18,10 @@ data Message = } deriving Show +data Error = + BadMessage String + deriving Show + data Prefix = Prefix { p_name :: String, @@ -20,3 +30,36 @@ data Prefix = } deriving Show +type Net = ReaderT Bot IO + +data Bot = Bot { + bot_server :: Server, + bot_nick :: TVar String, + bot_chan :: TVar String, + bot_socket :: Handle +} + +data Config = + Config { + config_server :: Server, + config_nick :: String, + config_chan :: String + } + deriving Show + +data Hooks = + Hooks { + hooks_onConnect :: Net (), + hooks_onDisconnect :: Net (), + hooks_onError :: Error -> Net (), + hooks_onMessage :: Message -> Net () + --hooks_shell :: Net() + } + +data Server = + Server { + hostname :: String, + port :: Int + } +instance Show Server where + show Server{..} = hostname ++ ":" ++ show port |