on master help sign in
Keep Serialize.(encode, decode) simple
commitcedc81cc402dbe0ab303226ac8f63fbb92049048 authorAdithya Kumar <adithya@composewell.com> dateThu 7 Sep 2023, 21:41 (3 years ago) parent21fd670
1 file changed+6−11
core/src/Streamly/Internal/Data/Serialize.hs+6−11
core/src/Streamly/Internal/Data/Serialize.hs+6−11
@@ -243,13 +243,10 @@ encodeAs :: forall a. Serialize a => PinnedState -> a -> Array Word8
243243encodeAs ps a =
244244 unsafeInlineIO $ do
245245 let len = size 0 a
246− -- We encode the length of the encoding as a header hence the 8 extra
247− -- bytes to encode Int64
248− mbarr <- Unbox.newBytesAs ps (8 + len)
249− off1 <- serialize 0 mbarr (fromIntegral len :: Int64)
250− off2 <- serialize off1 mbarr a
251− assertM(off2 == len + off1)
252− pure $ Array mbarr 0 len
246+ mbarr <- Unbox.newBytesAs ps len
247+ off <- serialize 0 mbarr a
248+ assertM(len == off)
249+ pure $ Array mbarr 0 off
253250
254251{-# INLINE encode #-}
255252encode :: Serialize a => a -> Array Word8
@@ -263,8 +260,6 @@ pinnedEncode = encodeAs Pinned
263260decode :: Serialize a => Array Word8 -> a
264261decode arr@(Array {..}) = unsafeInlineIO $ do
265262 let lenArr = Array.length arr
266− (off1, lenEncoding :: Int64) <- deserialize 0 arrContents lenArr
267− (off2, val) <- deserialize off1 arrContents lenArr
268− assertM(fromIntegral lenEncoding + off1 == off2)
269− assertM(lenArr == off2)
263+ (off, val) <- deserialize 0 arrContents lenArr
264+ assertM(lenArr == off)
270265 pure val