39 lines
680 B
Haskell
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
|