{-# 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