aeson-value-parser 0.12.2 → 0.12.3
raw patch · 2 files changed
+15/−1 lines, 2 filesdep +foldlPVP ok
version bump matches the API change (PVP)
Dependencies added: foldl
API changes (from Hackage documentation)
+ Aeson.ValueParser: foldElements :: Fold element array -> Value element -> Array array
+ Aeson.ValueParser: foldFields :: Fold (Text, field) object -> Value field -> Object object
Files
- aeson-value-parser.cabal +2/−1
- library/Aeson/ValueParser.hs +13/−0
aeson-value-parser.cabal view
@@ -1,7 +1,7 @@ name: aeson-value-parser version:- 0.12.2+ 0.12.3 synopsis: An API for parsing "aeson" JSON tree into Haskell types description:@@ -55,6 +55,7 @@ scientific == 0.3.*, text == 1.*, --+ foldl >=1.3 && <2, transformers >= 0.5 && < 0.7, mtl-prelude < 3, base-prelude >= 0.1.19 && < 2
library/Aeson/ValueParser.hs view
@@ -18,11 +18,13 @@ Object, field, fieldsMap,+ foldFields, foldlFields, -- * Array parsers Array, element, elementsVector,+ foldElements, foldlElements, foldlElements1, foldrElements,@@ -33,6 +35,7 @@ import MTLPrelude import Data.Text (Text) import Data.Scientific (Scientific)+import Control.Foldl (Fold(..)) import qualified Data.Aeson as A import qualified Data.HashMap.Strict as B import qualified Data.Vector as C@@ -162,6 +165,11 @@ fieldsMap (Value effect) = Object $ ReaderT $ mapM (runReaderT effect) +{-# INLINE foldFields #-}+foldFields :: Fold (Text, field) object -> Value field -> Object object+foldFields (Fold foldStep foldInit foldEnd) value =+ fmap foldEnd (foldlFields foldStep foldInit value)+ {-# INLINE foldlFields #-} foldlFields :: (a -> (Text, b) -> a) -> a -> Value b -> Object a foldlFields step init (Value impl) =@@ -191,6 +199,11 @@ elementsVector :: Value a -> Array (C.Vector a) elementsVector (Value effect) = Array $ ReaderT $ mapM (runReaderT effect)++{-# INLINE foldElements #-}+foldElements :: Fold element array -> Value element -> Array array+foldElements (Fold foldStep foldInit foldEnd) value =+ fmap foldEnd (foldlElements foldStep foldInit value) {-# INLINE foldlElements #-} foldlElements :: (a -> b -> a) -> a -> Value b -> Array a