calamity-0.1.9.1: A library for writing discord bots
Safe HaskellNone
LanguageHaskell2010

Calamity.Commands.Dsl

Description

A DSL for generating commands and groups

Synopsis

Documentation

command' :: Member (Final IO) r => Text -> (Context -> Sem r (Either CommandError a)) -> ((Context, a) -> Sem (Fail ': r) ()) -> Sem (DSLState r) Command Source #

Build a command with an already prepared invokation action

command :: forall ps a r. (Member (Final IO) r, TypedCommandC ps a r) => Text -> (Context -> CommandForParsers ps r) -> Sem (DSLState r) Command Source #

help :: Member (Reader (Context -> Text)) r => (Context -> Text) -> Sem r a -> Sem r a Source #

requires :: [Check] -> Sem (DSLState r) a -> Sem (DSLState r) a Source #

requires' :: Member (Final IO) r => Text -> (Context -> Sem r (Maybe Text)) -> Sem (DSLState r) a -> Sem (DSLState r) a Source #

requiresPure :: [(Text, Context -> Maybe Text)] -> Sem (DSLState r) a -> Sem (DSLState r) a Source #

group :: Member (Final IO) r => Text -> Sem (DSLState r) a -> Sem (DSLState r) a Source #

type DSLState r = LocalWriter (HashMap Text Command) ': (LocalWriter (HashMap Text Group) ': (Reader (Maybe Group) ': (Reader (Context -> Text) ': (Reader [Check] ': (Fixpoint ': r))))) Source #

raiseDSL :: Sem r a -> Sem (DSLState r) a Source #