identifiers 0.2.0.1 → 0.2.1.0
raw patch · 2 files changed
+9/−1 lines, 2 filesdep +cereal
Dependencies added: cereal
Files
- identifiers.cabal +3/−1
- src/Data/Identifiers.hs +6/−0
identifiers.cabal view
@@ -1,5 +1,5 @@ name: identifiers-version: 0.2.0.1+version: 0.2.1.0 synopsis: Numeric identifiers for values. description: Useful for situations where repeated-storage requirements of values become too costly.@@ -19,6 +19,7 @@ exposed-modules: Data.Identifiers build-depends: base >=4.6 && <4.7, binary ==0.7.*,+ cereal <0.5, containers ==0.5.*, deepseq ==1.3.*, hashable ==1.2.*,@@ -34,6 +35,7 @@ build-depends: base >=4.6 && <4.7, criterion, binary ==0.7.*,+ cereal <0.5, deepseq ==1.3.*, bytestring ==0.10.*, identifiers
src/Data/Identifiers.hs view
@@ -40,8 +40,10 @@ import Data.HashMap.Lazy (HashMap) import Data.Maybe import Data.Sequence (Seq, (|>))+import Data.Serialize (Serialize) import qualified Data.HashMap.Lazy as H import qualified Data.Sequence as S+import qualified Data.Serialize as C data Identifiers i a = Identifiers { ids :: !(HashMap a i)@@ -54,6 +56,10 @@ instance (Binary i, Eq a, Hashable a, Binary a) => Binary (Identifiers i a) where put s = put (H.toList $ ids s) >> put (names s) get = Identifiers <$> (H.fromList <$> get) <*> get++instance (Serialize i, Eq a, Hashable a, Serialize a) => Serialize (Identifiers i a) where+ put s = C.put (H.toList $ ids s) >> C.put (names s)+ get = Identifiers <$> (H.fromList <$> C.get) <*> C.get instance (NFData i, NFData a) => NFData (Identifiers i a) where rnf (Identifiers i n) = rnf (i, n)