indexation 0.4.4.2 → 0.4.5
raw patch · 4 files changed
+12/−6 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- indexation.cabal +1/−1
- library/Indexation/Cereal/Get.hs +3/−2
- library/Indexation/Cereal/Put.hs +4/−3
- library/Indexation/Instances/Cereal.hs +4/−0
indexation.cabal view
@@ -1,5 +1,5 @@ name: indexation-version: 0.4.4.2+version: 0.4.5 category: Data synopsis: Tools for entity indexation description: A set of tools for indexing entities
library/Indexation/Cereal/Get.hs view
@@ -5,7 +5,7 @@ import Indexation.Types import Data.Serialize.Get import qualified Data.HashMap.Strict as A-import qualified Data.Vector as B+import qualified Data.Vector.Generic as B getIndexHashMap :: (Eq k, Hashable k) => Get k -> Get (HashMap k Int)@@ -33,7 +33,8 @@ entity <- getEntity return (A.insert entity index hashMap) -getVector :: Get element -> Get (Vector element)+{-# INLINE getVector #-}+getVector :: B.Vector vector element => Get element -> Get (vector element) getVector getElement = getSize >>= getElements where
library/Indexation/Cereal/Put.hs view
@@ -4,15 +4,16 @@ import Indexation.Prelude import Indexation.Types import Data.Serialize.Put-import qualified Data.Vector as B+import qualified Data.Vector.Generic as B -putVector :: Putter element -> Putter (Vector element)+{-# INLINE putVector #-}+putVector :: (B.Vector vector element) => Putter element -> Putter (vector element) putVector putElement vector = putSize *> putElements where putSize = putInt64le (fromIntegral (B.length vector))- putElements = traverse_ putElement vector+ putElements = B.foldM'_ (const putElement) () vector putEntityTable :: Putter entity -> Putter (EntityTable entity) putEntityTable putEntity (EntityTable vector) =
library/Indexation/Instances/Cereal.hs view
@@ -20,3 +20,7 @@ instance (Serialize entity, Eq entity, Hashable entity) => Serialize (IndexTable entity) where get = Get.getIndexTableAsEntityTable get put = Put.putEntityTable put . EntityTable.indexTable++instance Serialize (IndexSet a) where+ get = IndexSet <$> Get.getVector get+ put (IndexSet vector) = Put.putVector put vector