rattletrap-6.0.2: library/Rattletrap/Type/Section.hs
{-# LANGUAGE TemplateHaskell #-}
module Rattletrap.Type.Section
( Section(..)
)
where
import Rattletrap.Type.Common
import Rattletrap.Type.Word32le
-- | A section is a large piece of a 'Rattletrap.Replay.Replay'. It has a
-- 32-bit size (in bytes), a 32-bit CRC (see "Rattletrap.Utility.Crc"), and then a
-- bunch of data (the body). This interface is provided so that you don't have
-- to think about the size and CRC.
data Section a = Section
{ sectionSize :: Word32le
-- ^ read only
, sectionCrc :: Word32le
-- ^ read only
, sectionBody :: a
-- ^ The actual content in the section.
} deriving (Eq, Ord, Show)
$(deriveJson ''Section)