wizard-wipeout/src-lib/Library/Types/Communication.hs

40 lines
680 B
Haskell
Raw Normal View History

2023-12-10 19:12:53 +00:00
{-# 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
2023-12-11 08:49:24 +00:00
data ClientMessagePayload
2023-12-10 19:12:53 +00:00
= ClientQuit
2023-12-11 08:49:24 +00:00
deriving (Eq, Show, Generic)
data ClientMessage
= ClientMessage
{ cmClientID :: UUID
, cmPayload :: ClientMessagePayload
}
2023-12-10 19:12:53 +00:00
| IdRequest
deriving (Eq, Show, Generic)
2023-12-11 08:49:24 +00:00
instance FromJSON ClientMessagePayload
instance ToJSON ClientMessagePayload
instance FromJSON ClientMessage
2023-12-10 19:12:53 +00:00
2023-12-11 08:49:24 +00:00
instance ToJSON ClientMessage