composite-aeson 0.7.2.0 → 0.7.3.0
raw patch · 5 files changed
+16/−7 lines, 5 files
Files
- composite-aeson.cabal +2/−2
- src/Composite/Aeson/Formats/DateTime.hs +3/−1
- src/Composite/Aeson/Formats/Generic.hs +11/−2
- src/Composite/Aeson/Formats/InternalTH.hs +0/−1
- src/Composite/Aeson/TH.hs +0/−1
composite-aeson.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 7d5fd2a78928c12027d23895f74b3c815ebc88753dd2fb7f074caba91804d774+-- hash: 732f90c13a3229400138195b439fa0d4a36ab8a8240dcff826eec5fcdeb45d76 name: composite-aeson-version: 0.7.2.0+version: 0.7.3.0 synopsis: JSON for Vinyl records description: Integration between Aeson and Vinyl records allowing records to be easily converted to JSON using automatic derivation, explicit formats, or a mix of both. category: Records
src/Composite/Aeson/Formats/DateTime.hs view
@@ -11,7 +11,6 @@ import Control.Monad.Error.Class (throwError) import qualified Data.Aeson.BetterErrors as ABE import Data.Either (partitionEithers)-import Data.Monoid ((<>)) import Data.List (intercalate) import Data.List.NonEmpty (NonEmpty((:|))) import qualified Data.List.NonEmpty as NEL@@ -110,5 +109,8 @@ #endif successOrFail _ f (Success a) = f a successOrFail f _ (Fail s) = f s+#if __GLASGOW_HASKELL__ >= 810+successOrFail f _ _ = f "pattern matching should have been exhaustive, but GHC disagreed"+#endif
src/Composite/Aeson/Formats/Generic.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} module Composite.Aeson.Formats.Generic ( abeJsonFormat, aesonJsonFormat, jsonArrayFormat, jsonObjectFormat , SumStyle(..), sumFromJson, sumToJson, jsonSumFormat@@ -13,10 +14,14 @@ import qualified Data.HashMap.Strict as StrictHashMap import Data.List.NonEmpty (NonEmpty((:|))) import qualified Data.List.NonEmpty as NEL-import Data.Monoid ((<>)) import Data.Text (Text, intercalate, unpack) import qualified Data.Vector as Vector-import Language.Haskell.TH.Syntax (Lift, lift, liftString)+import Language.Haskell.TH.Syntax+ ( Lift, lift, liftString+#if MIN_VERSION_template_haskell(2,16,0)+ , liftTyped, TExp(TExp)+#endif+ ) -- |Produce an explicit 'JsonFormat' by using the implicit Aeson 'ToJSON' instance and an explicit @aeson-better-errors@ 'ABE.Parse'. abeJsonFormat :: ToJSON a => ABE.Parse e a -> JsonFormat e a@@ -148,6 +153,10 @@ SumStyleFieldName -> [| SumStyleFieldName |] SumStyleTypeValue a b -> [| SumStyleTypeValue $(liftString $ unpack a) $(liftString $ unpack b) |] SumStyleMergeType a -> [| SumStyleMergeType $(liftString $ unpack a) |]+#if MIN_VERSION_template_haskell(2,16,0)+ liftTyped = fmap TExp . lift+#endif+ -- |Helper used by the various sum format functions which takes a list of input format pairs and makes an oxford comma list of them. expectedFieldsForInputs :: NonEmpty (Text, x) -> String
src/Composite/Aeson/Formats/InternalTH.hs view
@@ -8,7 +8,6 @@ import qualified Data.Aeson.BetterErrors as ABE import qualified Data.HashMap.Lazy as HM import Data.List (foldl')-import Data.Monoid ((<>)) import Data.Text (Text) import qualified Data.Vector as V import Language.Haskell.TH
src/Composite/Aeson/TH.hs view
@@ -14,7 +14,6 @@ import Control.Lens (_head, over) import Data.Aeson (FromJSON(parseJSON), ToJSON(toJSON)) import Data.Char (toLower)-import Data.Monoid ((<>)) import Language.Haskell.TH ( Q, clause, cxt , normalB