edges-0.4: library/Edges/Cereal/Put.hs
module Edges.Cereal.Put
where
import Edges.Prelude
import Edges.Types
import Data.Serialize.Put
import PrimitiveExtras.Cereal.Put
nodeCounts :: Putter (NodeCounts entity)
nodeCounts (NodeCounts pa) =
primArray putWord32le pa
edges :: Putter (Edges a b)
edges (Edges targetSpaceValue mpaValue) =
targetSpace <> mpa
where
targetSpace = putInt64le (fromIntegral targetSpaceValue)
mpa = primMultiArray putWord32le mpaValue
node :: Putter (Node a)
node (Node int) = putInt64le (fromIntegral int)