game/src/Message/Client.hs

27 lines
589 B
Haskell

{-# LANGUAGE DeriveGeneric #-}
module Message.Client (
Message(..)
) where
import Data.Aeson (FromJSON(..), ToJSON(..), genericParseJSON, genericToEncoding, defaultOptions)
import GHC.Generics (Generic)
import Game (Game)
import Gender (Gender)
data Message =
NewGame
| Initialize {
name :: String
, skin :: String
, gender :: Gender
}
| Resume {
game :: Game
} deriving (Generic)
instance ToJSON Message where
toEncoding = genericToEncoding defaultOptions
instance FromJSON Message where
parseJSON = genericParseJSON defaultOptions