module Discord.Handle ( DiscordHandle(..) , DiscordHandleThreadId(..) ) where import Control.Concurrent (ThreadId, Chan, MVar) import qualified Data.Text as T import Discord.Internal.Rest (DiscordHandleRestChan) import Discord.Internal.Gateway (DiscordHandleGateway, DiscordHandleCache) -- | Thread Ids marked by what type they are data DiscordHandleThreadId = DiscordHandleThreadIdRest ThreadId | DiscordHandleThreadIdCache ThreadId | DiscordHandleThreadIdLogger ThreadId | DiscordHandleThreadIdGateway ThreadId data DiscordHandle = DiscordHandle { discordHandleRestChan :: DiscordHandleRestChan , discordHandleGateway :: DiscordHandleGateway , discordHandleCache :: DiscordHandleCache , discordHandleThreads :: [DiscordHandleThreadId] , discordHandleLog :: Chan T.Text , discordHandleLibraryError :: MVar T.Text }