store-0.3: src/Data/Store/Streaming/Internal.hs
module Data.Store.Streaming.Internal
( messageMagic
, magicLength
, sizeTagLength
, headerLength
, SizeTag
) where
import Data.Word (Word64)
import qualified Foreign.Storable as Storable
-- | Type used to store the length of a 'Message'.
type SizeTag = Int
-- | Some fixed arbitrary magic number that precedes every 'Message'.
messageMagic :: Word64
messageMagic = 18205256374652458875
magicLength :: Int
magicLength = Storable.sizeOf messageMagic
sizeTagLength :: Int
sizeTagLength = Storable.sizeOf (undefined :: SizeTag)
headerLength :: Int
headerLength = sizeTagLength + magicLength