packages feed

primitive-extras-0.1.10: library/PrimitiveExtras/Cereal/Get.hs

module PrimitiveExtras.Cereal.Get
where

import PrimitiveExtras.Prelude
import PrimitiveExtras.Types
import Data.Serialize.Get
import PrimitiveExtras.Monad


primArray :: Prim element => Get element -> Get (PrimArray element)
primArray element =
  do
    size <- fromIntegral <$> getInt64le
    replicateMPrimArray size element

primMultiArray :: Prim element => Get element -> Get (PrimMultiArray element)
primMultiArray element =
  do
    size <- fromIntegral <$> getInt64le
    replicateMMultiPrimArray size (primArray element)