wizard-wipeout/src-lib/Library/Types/Communication.hs
2023-12-11 09:49:24 +01:00

39 lines
680 B
Haskell

{-# LANGUAGE DeriveGeneric #-}
module Library.Types.Communication where
import Data.Aeson
import Data.UUID
import GHC.Generics
data ServerMessage
= ServerQuit
| AcceptClient
{ acClientUUID :: UUID
}
deriving (Eq, Show, Generic)
instance FromJSON ServerMessage
instance ToJSON ServerMessage
data ClientMessagePayload
= ClientQuit
deriving (Eq, Show, Generic)
data ClientMessage
= ClientMessage
{ cmClientID :: UUID
, cmPayload :: ClientMessagePayload
}
| IdRequest
deriving (Eq, Show, Generic)
instance FromJSON ClientMessagePayload
instance ToJSON ClientMessagePayload
instance FromJSON ClientMessage
instance ToJSON ClientMessage