calamity-0.8.0.0: Calamity/Client.hs
-- | Module containing the core client stuff
module Calamity.Client (
module Calamity.Client.Client,
module Calamity.Client.Types,
-- * Client stuff
-- $clientDocs
) where
import Calamity.Client.Client
import Calamity.Client.Types
{- $clientDocs
This module provides the core components for running a discord client, along
with abstractions for registering event handlers, firing custom events, and
waiting on events.
==== Registered Metrics
1. Counter: @"events_recieved" [type, shard]@
Incremented for each event received, the @type@ parameter is the type
of event (the name of the constructor in
'Calamity.Gateway.DispatchEvents.DispatchData'), and @shard@ is the
ID of the shard that received the event.
2. Histogram: @"cache_update"@
Tracks how long it takes to update the cache after recieving an event.
3. Histogram: @"event_handle"@
Tracks how long it takes to process an event handler for an event.
==== Examples
A simple client that prints every message recieved:
@
'Control.Monad.void' . 'Polysemy.runFinal' . 'Polysemy.embedToFinal' . 'Calamity.Cache.InMemory.runCacheInMemory' . 'Calamity.Metrics.Noop.runMetricsNoop' $ 'runBotIO' ('Calamity.Types.Token.BotToken' token) $ do
'react' \@\''MessageCreateEvt' $ \\msg -> 'Polysemy.embed' $ 'print' msg
@
-}