edges-0.9: library/Edges/Cereal/Put.hs
module Edges.Cereal.Put
where
import Edges.Prelude
import Edges.Types
import Data.Serialize
import qualified PrimitiveExtras.PrimArray as PrimArray
import qualified PrimitiveExtras.PrimMultiArray as PrimMultiArray
nodeCounts :: Putter (NodeCounts entity)
nodeCounts (NodeCounts pa) =
PrimArray.cerealPutAsInMemory put pa
edges :: Putter (Edges a b)
edges (Edges targetSpaceValue mpaValue) = targetSpace <> mpa where
targetSpace = put targetSpaceValue
mpa = PrimMultiArray.cerealPutAsInMemory put mpaValue
node :: Putter (Node a)
node (Node x) = put x