Safe Haskell | None |
---|
- data IRCRState
- initRoState :: [DSum Config] -> IO IRCRState
- reportInitDone :: MonadIO m => IRCRState -> m ()
- waitForInit :: MonadLB m => m ()
- waitForQuit :: MonadLB m => m ()
- type Callback = IrcMessage -> LB ()
- data ModuleRef = forall st . ModuleRef (Module st) (MVar st) String
- data CommandRef = forall st . CommandRef (Module st) (MVar st) String (Command (ModuleT st LB))
- data IRCRWState = IRCRWState {
- ircServerMap :: Map String (String, IrcMessage -> LB ())
- ircPrivilegedUsers :: Set Nick
- ircIgnoredUsers :: Set Nick
- ircChannels :: Map ChanName String
- ircModules :: Map String ModuleRef
- ircCallbacks :: Map String [(String, Callback)]
- ircOutputFilters :: [(String, OutputFilter LB)]
- ircCommands :: Map String CommandRef
- ircStayConnected :: !Bool
- initRwState :: IRCRWState
- newtype LB a = LB {}
- class (MonadIO m, MonadBaseControl IO m, MonadConfig m, MonadLogging m, Applicative m) => MonadLB m where
- evalLB :: LB a -> IRCRState -> IRCRWState -> IO a
- addServer :: String -> (IrcMessage -> LB ()) -> ModuleT mod LB ()
- remServer :: String -> LB ()
- send :: IrcMessage -> LB ()
- received :: IrcMessage -> LB ()
- getConfig :: MonadConfig m => Config a -> m a
- withModule :: String -> LB a -> (forall st. Module st -> ModuleT st LB a) -> LB a
- withCommand :: String -> LB a -> (forall st. Module st -> Command (ModuleT st LB) -> ModuleT st LB a) -> LB a
- withAllModules :: (forall st. Module st -> ModuleT st LB a) -> LB ()
Documentation
reportInitDone :: MonadIO m => IRCRState -> m ()Source
waitForInit :: MonadLB m => m ()Source
waitForQuit :: MonadLB m => m ()Source
type Callback = IrcMessage -> LB ()Source
data CommandRef Source
data IRCRWState Source
Global read/write state.
IRCRWState | |
|
initRwState :: IRCRWStateSource
Default rw state
The IRC Monad. The reader transformer holds information about the connection to the IRC server.
instances Monad, Functor, MonadIO, MonadState, MonadError
class (MonadIO m, MonadBaseControl IO m, MonadConfig m, MonadLogging m, Applicative m) => MonadLB m whereSource
send :: IrcMessage -> LB ()Source
received :: IrcMessage -> LB ()Source
getConfig :: MonadConfig m => Config a -> m aSource
withModule :: String -> LB a -> (forall st. Module st -> ModuleT st LB a) -> LB aSource
Interpret an expression in the context of a module.
Arguments are which map to use (ircModules
and ircCommands
are
the only sensible arguments here), the name of the module/command,
action for the case that the lookup fails, action if the lookup
succeeds.