module Rattletrap.Encode.PrivateMatchSettingsAttribute
  ( putPrivateMatchSettingsAttribute
  )
where

import Rattletrap.Encode.Str
import Rattletrap.Encode.Word32le
import Rattletrap.Type.PrivateMatchSettingsAttribute

import qualified Data.Binary.Bits.Put as BinaryBits

putPrivateMatchSettingsAttribute
  :: PrivateMatchSettingsAttribute -> BinaryBits.BitPut ()
putPrivateMatchSettingsAttribute :: PrivateMatchSettingsAttribute -> BitPut ()
putPrivateMatchSettingsAttribute PrivateMatchSettingsAttribute
privateMatchSettingsAttribute = do
  Str -> BitPut ()
putTextBits
    (PrivateMatchSettingsAttribute -> Str
privateMatchSettingsAttributeMutators PrivateMatchSettingsAttribute
privateMatchSettingsAttribute)
  Word32le -> BitPut ()
putWord32Bits
    (PrivateMatchSettingsAttribute -> Word32le
privateMatchSettingsAttributeJoinableBy PrivateMatchSettingsAttribute
privateMatchSettingsAttribute)
  Word32le -> BitPut ()
putWord32Bits
    (PrivateMatchSettingsAttribute -> Word32le
privateMatchSettingsAttributeMaxPlayers PrivateMatchSettingsAttribute
privateMatchSettingsAttribute)
  Str -> BitPut ()
putTextBits
    (PrivateMatchSettingsAttribute -> Str
privateMatchSettingsAttributeGameName PrivateMatchSettingsAttribute
privateMatchSettingsAttribute)
  Str -> BitPut ()
putTextBits
    (PrivateMatchSettingsAttribute -> Str
privateMatchSettingsAttributePassword PrivateMatchSettingsAttribute
privateMatchSettingsAttribute)
  Bool -> BitPut ()
BinaryBits.putBool
    (PrivateMatchSettingsAttribute -> Bool
privateMatchSettingsAttributeFlag PrivateMatchSettingsAttribute
privateMatchSettingsAttribute)