packages feed

sigmacord-1.0.0: src/Sigmacord/Handle.hs

module Sigmacord.Handle
  ( SigmacordHandle(..)
  , HandleThreadId(..)
  ) where

import Control.Concurrent (ThreadId, Chan, MVar)
import qualified Data.Text as T

import Sigmacord.Internal.Rest (RestChanHandle(..))
import Sigmacord.Internal.Gateway (GatewayHandle(..), CacheHandle(..))


data HandleThreadId
  = 
    HandleThreadIdRest ThreadId
  | 
  HandleThreadIdCache ThreadId
  | 
  HandleThreadIdLogger ThreadId
  | 
  HandleThreadIdGateway ThreadId


data SigmacordHandle = SigmacordHandle
  { 
    SigmacordHandleRestChan :: RestChanHandle
  , 
    SigmacordHandleGateway :: GatewayHandle
  , 
    SigmacordHandleCache :: CacheHandle
  , 
    SigmacordHandleThreads :: [HandleThreadId]
  , 
    SigmacordHandleLog :: Chan T.Text
  , 
    SigmacordHandleLibraryError :: MVar T.Text
  }