aboutsummaryrefslogtreecommitdiff
path: root/server/lib/Cafp/Messages.hs
blob: 29f5575d7cd4dc44fa8c2eb8ba83b88a58f99e5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{-# LANGUAGE TemplateHaskell #-}
module Cafp.Messages
    ( GameView (..)
    , ServerMessage (..)
    , ClientMessage (..)
    ) where

import           Data.Text  (Text)
import           Elm.Derive

data GameView = GameView
    { gameViewOpponents :: [Text]
    , gameViewMyName    :: Text
    } deriving (Show)

data ServerMessage
    = Welcome Int
    | SyncGameView GameView
    | Bye
    deriving (Show)

data ClientMessage
    = ChangeMyName Text
    deriving (Show)

deriveBoth (defaultOptionsDropLower 8) ''GameView
deriveBoth defaultOptions ''ServerMessage
deriveBoth defaultOptions ''ClientMessage