aeson-quick 0.1.1.2 → 0.1.2.0
raw patch · 2 files changed
+30/−29 lines, 2 filesdep ~aesondep ~attoparsecdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, attoparsec, base, bytestring, criterion, deepseq, microlens, tasty, tasty-hunit, text, unordered-containers, vector
API changes (from Hackage documentation)
Files
- Data/Aeson/Quick.hs +9/−8
- aeson-quick.cabal +21/−21
Data/Aeson/Quick.hs view
@@ -31,6 +31,7 @@ import GHC.Generics (Generic) +import Debug.Trace data Structure = Obj [(T.Text, Bool, Structure)] | Arr Structure@@ -143,16 +144,16 @@ build :: ToJSON a => Structure -> Value -> a -> Value build structure val = go structure val . toJSON where- go (Val) _ r = r- go (Arr s) (Array v) (Array r) = Array $ V.zipWith (go s) v r - go (Arr s) Null (Array r) = Array $ V.map (go s Null) r- go (Arr s) Null r = toJSON [go s Null r]- go (Obj [ks]) (Object v) r = Object $ update v ks r- go (Obj keys) Null r = go (Obj keys) (Object mempty) r- go (Obj ks) (Object v) (Array r) = Object $+ go (Val) _ r = traceShow "a" $ r+ go (Arr s) (Array v) (Array r) = traceShow "b" $ Array $ V.zipWith (go s) v r + go (Arr s) Null (Array r) = traceShow "c" $ Array $ V.map (go s Null) r+ go (Arr s) Null r = traceShow "d" $ toJSON [go s Null r]+ go (Obj [ks]) (Object v) r = traceShow "e" $ Object $ update v ks r+ go (Obj keys) Null r = traceShow "f" $ go (Obj keys) (Object mempty) r+ go (Obj ks) (Object v) (Array r) = traceShow "g" $ Object $ let maps = zip ks (V.toList r) in foldl (\v' (s,r') -> update v' s r') v maps- go (Obj keys) (Object v) r = r+ go (Obj keys) (Object v) r = traceShow "h" $ r go a b c = error $ show (a,b,c) -- TODO update v (k,_,s) r = let startVal = go s (H.lookupDefault Null k v) r
aeson-quick.cabal view
@@ -1,5 +1,5 @@ Name: aeson-quick-Version: 0.1.1.2+Version: 0.1.2.0 Build-Type: Simple Cabal-Version: >= 1.16 License: BSD3@@ -18,13 +18,13 @@ Library Exposed-modules: Data.Aeson.Quick hs-source-dirs: .- Build-Depends: base >= 4 && <= 4.9.0.0- , aeson >= 0.8 && < 0.12- , attoparsec >= 0.12 && < 0.14- , deepseq >= 1.3 && < 1.5- , text >= 1.2 && < 1.3- , unordered-containers >= 0.2.5 && < 0.3- , vector >= 0.10 && < 0.12+ Build-Depends: base >= 4 && <= 5+ , aeson+ , attoparsec+ , deepseq+ , text+ , unordered-containers+ , vector if impl(ghc < 7.5) Build-Depends: ghc-prim >= 0.2 default-language: Haskell2010@@ -34,14 +34,14 @@ hs-source-dirs: test main-is: Test.hs build-depends: aeson-quick- , base >= 4 && <= 4.9.0.0- , bytestring >= 0.10.5 && < 0.11- , aeson >= 0.8 && < 0.12- , microlens >= 0.4 && < 0.5- , text >= 1.2 && < 1.3- , attoparsec >= 0.12 && < 0.14- , tasty >= 0.10 && < 0.12- , tasty-hunit >= 0.9 && < 0.10+ , base >= 4 && <= 5+ , bytestring+ , aeson+ , microlens+ , text+ , attoparsec+ , tasty+ , tasty-hunit default-language: Haskell2010 benchmark benchmark@@ -50,11 +50,11 @@ hs-source-dirs: test ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N build-depends: aeson-quick- , base >= 4 && <= 4.9.0.0- , aeson >= 0.8 && < 0.12- , bytestring >= 0.10 && < 0.11- , criterion >= 0.1 && < 1.2- , text >= 1.2 && < 1.3+ , base >= 4 && <= 5+ , aeson+ , bytestring+ , criterion+ , text default-language: Haskell2010