module Rattletrap.Message where

import Rattletrap.Primitive

import qualified Data.Binary as Binary

data Message = Message
  { messageFrame :: Word32
  , messageName :: Text
  , messageValue :: Text
  } deriving (Eq, Ord, Show)

getMessage :: Binary.Get Message
getMessage = do
  frame <- getWord32
  name <- getText
  value <- getText
  pure (Message frame name value)

putMessage :: Message -> Binary.Put
putMessage message = do
  putWord32 (messageFrame message)
  putText (messageName message)
  putText (messageValue message)