core-data 0.3.0.0 → 0.3.0.1
raw patch · 2 files changed
+24/−3 lines, 2 filesdep ~aesonPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson
API changes (from Hackage documentation)
Files
- core-data.cabal +2/−2
- lib/Core/Encoding/Json.hs +22/−1
core-data.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: core-data-version: 0.3.0.0+version: 0.3.0.1 synopsis: Convenience wrappers around common data structures and encodings description: Wrappers around common data structures and encodings. .@@ -42,7 +42,7 @@ lib ghc-options: -Wall -Wwarn -fwarn-tabs build-depends:- aeson >=2.0.1+ aeson >=1.5 && <2 || >=2.0.1 , base >=4.11 && <5 , bytestring , containers
lib/Core/Encoding/Json.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE InstanceSigs #-}@@ -91,8 +92,13 @@ breakPieces, ) import qualified Data.Aeson as Aeson++#if MIN_VERSION_aeson(2,0,1) import qualified Data.Aeson.Key as Aeson import qualified Data.Aeson.KeyMap as Aeson+#else+import qualified Data.HashMap.Strict as HashMap+#endif import Data.Coerce import Data.Hashable (Hashable) import qualified Data.List as List@@ -249,6 +255,7 @@ fromAeson :: Aeson.Value -> JsonValue fromAeson value = case value of+#if MIN_VERSION_aeson(2,0,1) Aeson.Object o -> let tvs = Aeson.toList o kvs =@@ -260,10 +267,24 @@ ) ) tvs- kvm :: Map JsonKey JsonValue kvm = intoMap kvs in JsonObject kvm+#else+ Aeson.Object o ->+ let tvs = HashMap.toList o+ kvs =+ fmap ( \(k, v) ->+ ( JsonKey+ (intoRope k)+ , fromAeson v+ )+ )+ tvs+ kvm :: Map JsonKey JsonValue+ kvm = intoMap kvs+ in JsonObject kvm+#endif Aeson.Array v -> JsonArray (fmap fromAeson (V.toList v)) Aeson.String t -> JsonString (intoRope t) Aeson.Number n -> JsonNumber n