packages feed

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 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)