aeson-quick 0.1.2.0 → 0.1.2.1
raw patch · 2 files changed
+12/−13 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Data/Aeson/Quick.hs +10/−11
- aeson-quick.cabal +2/−2
Data/Aeson/Quick.hs view
@@ -31,8 +31,6 @@ import GHC.Generics (Generic) -import Debug.Trace- data Structure = Obj [(T.Text, Bool, Structure)] | Arr Structure | Val@@ -58,13 +56,14 @@ parseStructure :: T.Text -> Either String Structure parseStructure = parseOnly structure where- structure = object' <|> array+ structure = object' <|> array <|> val object' = Obj <$> ("{" *> sepBy1 lookups (char ',') <* "}") array = Arr <$> ("[" *> structure <* "]") lookups = (,,) <$> (takeWhile1 isKeyChar) <*> ("?" *> pure True <|> pure False) <*> (":" *> structure <|> pure Val) isKeyChar = isAlphaNum -- TODO+ val = "." >> pure Val {- |@@ -144,16 +143,16 @@ build :: ToJSON a => Structure -> Value -> a -> Value build structure val = go structure val . toJSON where- 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 $+ 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 $ let maps = zip ks (V.toList r) in foldl (\v' (s,r') -> update v' s r') v maps- go (Obj keys) (Object v) r = traceShow "h" $ r+ go (Obj keys) (Object v) r = 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.2.0+Version: 0.1.2.1 Build-Type: Simple Cabal-Version: >= 1.16 License: BSD3@@ -10,7 +10,7 @@ Category: Text, Web, JSON Synopsis: Quick JSON extractions with Aeson Description: DSL on top of Aeson. This library is /experimental/.-Copyright: (c) 2014-2017 Scott Sadler+Copyright: (c) 2014-2018 Scott Sadler Stability: Experimental Tested-With: GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1