module Rattletrap.Encode.Header
( putHeader
)
where
import Rattletrap.Encode.Dictionary
import Rattletrap.Encode.Property
import Rattletrap.Encode.Str
import Rattletrap.Encode.Word32le
import Rattletrap.Type.Header
import qualified Data.Binary as Binary
putHeader :: Header -> Binary.Put
Header
header = do
Word32le -> Put
putWord32 (Header -> Word32le
headerEngineVersion Header
header)
Word32le -> Put
putWord32 (Header -> Word32le
headerLicenseeVersion Header
header)
case Header -> Maybe Word32le
headerPatchVersion Header
header of
Maybe Word32le
Nothing -> () -> Put
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
Just Word32le
patchVersion -> Word32le -> Put
putWord32 Word32le
patchVersion
Str -> Put
putText (Header -> Str
headerLabel Header
header)
(Property -> Put) -> Dictionary Property -> Put
forall a. (a -> Put) -> Dictionary a -> Put
putDictionary Property -> Put
putProperty (Header -> Dictionary Property
headerProperties Header
header)