game/src/Message/Client.hs

25 lines
564 B
Haskell

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