packages feed

generic-aeson 0.2.0.7 → 0.2.0.8

raw patch · 4 files changed

+34/−6 lines, 4 filesdep ~aesondep ~basedep ~generic-derivingPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: aeson, base, generic-deriving, vector

API changes (from Hackage documentation)

- Generics.Generic.Aeson: instance [overlap ok] (Constructor c, GfromJson f) => GfromJson (M1 C c f)
- Generics.Generic.Aeson: instance [overlap ok] (Constructor c, GtoJson f) => GtoJson (M1 C c f)
- Generics.Generic.Aeson: instance [overlap ok] (GfromJson f, GfromJson g) => GfromJson (f :*: g)
- Generics.Generic.Aeson: instance [overlap ok] (GfromJson f, GfromJson g) => GfromJson (f :+: g)
- Generics.Generic.Aeson: instance [overlap ok] (GtoJson f, GtoJson g) => GtoJson (f :*: g)
- Generics.Generic.Aeson: instance [overlap ok] (GtoJson f, GtoJson g) => GtoJson (f :+: g)
- Generics.Generic.Aeson: instance [overlap ok] (Selector c, FromJSON a) => GfromJson (M1 S c (K1 i (Maybe a)))
- Generics.Generic.Aeson: instance [overlap ok] (Selector c, GfromJson f) => GfromJson (M1 S c f)
- Generics.Generic.Aeson: instance [overlap ok] (Selector c, GtoJson f) => GtoJson (M1 S c f)
- Generics.Generic.Aeson: instance [overlap ok] (Selector c, ToJSON a) => GtoJson (M1 S c (K1 i (Maybe a)))
- Generics.Generic.Aeson: instance [overlap ok] FromJSON c => GfromJson (K1 a c)
- Generics.Generic.Aeson: instance [overlap ok] GfromJson U1
- Generics.Generic.Aeson: instance [overlap ok] GfromJson f => GfromJson (M1 D c f)
- Generics.Generic.Aeson: instance [overlap ok] GtoJson U1
- Generics.Generic.Aeson: instance [overlap ok] GtoJson f => GtoJson (M1 D c f)
- Generics.Generic.Aeson: instance [overlap ok] ToJSON c => GtoJson (K1 a c)
- Generics.Generic.Aeson: stripPrefix :: Settings -> Maybe String
- Generics.Generic.Aeson.Util: instance Show Settings
- Generics.Generic.Aeson.Util: stripPrefix :: Settings -> Maybe String
- Generics.Generic.IsEnum: instance (GIsEnum f, GIsEnum g) => GIsEnum (f :*: g)
- Generics.Generic.IsEnum: instance (GIsEnum f, GIsEnum g) => GIsEnum (f :+: g)
- Generics.Generic.IsEnum: instance GIsEnum (K1 i a)
- Generics.Generic.IsEnum: instance GIsEnum (M1 S c a)
- Generics.Generic.IsEnum: instance GIsEnum (Rec1 f)
- Generics.Generic.IsEnum: instance GIsEnum Par1
- Generics.Generic.IsEnum: instance GIsEnum U1
- Generics.Generic.IsEnum: instance GIsEnum V1
- Generics.Generic.IsEnum: instance GIsEnum f => GIsEnum (M1 C c f)
- Generics.Generic.IsEnum: instance GIsEnum f => GIsEnum (M1 D c f)
+ Generics.Generic.Aeson: [stripPrefix] :: Settings -> Maybe String
+ Generics.Generic.Aeson: instance (GHC.Generics.Constructor c, Generics.Generic.Aeson.GfromJson f) => Generics.Generic.Aeson.GfromJson (GHC.Generics.M1 GHC.Generics.C c f)
+ Generics.Generic.Aeson: instance (GHC.Generics.Constructor c, Generics.Generic.Aeson.GtoJson f) => Generics.Generic.Aeson.GtoJson (GHC.Generics.M1 GHC.Generics.C c f)
+ Generics.Generic.Aeson: instance (GHC.Generics.Selector c, Data.Aeson.Types.Class.FromJSON a) => Generics.Generic.Aeson.GfromJson (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Base.Maybe a)))
+ Generics.Generic.Aeson: instance (GHC.Generics.Selector c, Data.Aeson.Types.Class.ToJSON a) => Generics.Generic.Aeson.GtoJson (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Base.Maybe a)))
+ Generics.Generic.Aeson: instance (GHC.Generics.Selector c, Generics.Generic.Aeson.GfromJson f) => Generics.Generic.Aeson.GfromJson (GHC.Generics.M1 GHC.Generics.S c f)
+ Generics.Generic.Aeson: instance (GHC.Generics.Selector c, Generics.Generic.Aeson.GtoJson f) => Generics.Generic.Aeson.GtoJson (GHC.Generics.M1 GHC.Generics.S c f)
+ Generics.Generic.Aeson: instance (Generics.Generic.Aeson.GfromJson f, Generics.Generic.Aeson.GfromJson g) => Generics.Generic.Aeson.GfromJson (f GHC.Generics.:*: g)
+ Generics.Generic.Aeson: instance (Generics.Generic.Aeson.GfromJson f, Generics.Generic.Aeson.GfromJson g) => Generics.Generic.Aeson.GfromJson (f GHC.Generics.:+: g)
+ Generics.Generic.Aeson: instance (Generics.Generic.Aeson.GtoJson f, Generics.Generic.Aeson.GtoJson g) => Generics.Generic.Aeson.GtoJson (f GHC.Generics.:*: g)
+ Generics.Generic.Aeson: instance (Generics.Generic.Aeson.GtoJson f, Generics.Generic.Aeson.GtoJson g) => Generics.Generic.Aeson.GtoJson (f GHC.Generics.:+: g)
+ Generics.Generic.Aeson: instance Data.Aeson.Types.Class.FromJSON c => Generics.Generic.Aeson.GfromJson (GHC.Generics.K1 a c)
+ Generics.Generic.Aeson: instance Data.Aeson.Types.Class.ToJSON c => Generics.Generic.Aeson.GtoJson (GHC.Generics.K1 a c)
+ Generics.Generic.Aeson: instance Generics.Generic.Aeson.GfromJson GHC.Generics.U1
+ Generics.Generic.Aeson: instance Generics.Generic.Aeson.GfromJson f => Generics.Generic.Aeson.GfromJson (GHC.Generics.M1 GHC.Generics.D c f)
+ Generics.Generic.Aeson: instance Generics.Generic.Aeson.GtoJson GHC.Generics.U1
+ Generics.Generic.Aeson: instance Generics.Generic.Aeson.GtoJson f => Generics.Generic.Aeson.GtoJson (GHC.Generics.M1 GHC.Generics.D c f)
+ Generics.Generic.Aeson.Util: [stripPrefix] :: Settings -> Maybe String
+ Generics.Generic.Aeson.Util: instance GHC.Show.Show Generics.Generic.Aeson.Util.Settings
+ Generics.Generic.IsEnum: instance (Generics.Generic.IsEnum.GIsEnum f, Generics.Generic.IsEnum.GIsEnum g) => Generics.Generic.IsEnum.GIsEnum (f GHC.Generics.:*: g)
+ Generics.Generic.IsEnum: instance (Generics.Generic.IsEnum.GIsEnum f, Generics.Generic.IsEnum.GIsEnum g) => Generics.Generic.IsEnum.GIsEnum (f GHC.Generics.:+: g)
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum (GHC.Generics.K1 i a)
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum (GHC.Generics.M1 GHC.Generics.S c a)
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum (GHC.Generics.Rec1 f)
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum GHC.Generics.Par1
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum GHC.Generics.U1
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum GHC.Generics.V1
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum f => Generics.Generic.IsEnum.GIsEnum (GHC.Generics.M1 GHC.Generics.C c f)
+ Generics.Generic.IsEnum: instance Generics.Generic.IsEnum.GIsEnum f => Generics.Generic.IsEnum.GIsEnum (GHC.Generics.M1 GHC.Generics.D c f)

Files

CHANGELOG.md view
@@ -1,8 +1,13 @@ # Changelog +#### 0.2.0.8++* Fix compilation on GHC 8.+ #### 0.2.0.7  * Allow `generic-deriving 1.8.*`+* Allow `vector 0.11.*`  #### 0.2.0.6 
generic-aeson.cabal view
@@ -1,5 +1,5 @@ name:                generic-aeson-version:             0.2.0.7+version:             0.2.0.8 synopsis:            Derivation of Aeson instances using GHC generics. description:         Derivation of Aeson instances using GHC generics. author:              Silk@@ -27,14 +27,14 @@     Generics.Generic.Aeson.Util     Generics.Generic.IsEnum   build-depends:-      base >= 4.4 && < 4.9-    , aeson >= 0.6 && < 0.10+      base >= 4.4 && < 4.10+    , aeson >= 0.6 && < 0.12     , attoparsec >= 0.11 && < 0.14-    , generic-deriving >= 1.6 && < 1.9+    , generic-deriving >= 1.6 && < 1.11     , mtl >= 2.0 && < 2.3     , tagged >= 0.2 && < 0.9     , text >= 0.11 && < 1.3     , unordered-containers == 0.2.*-    , vector == 0.10.*+    , vector >= 0.10 && < 0.12   if impl(ghc < 7.6)     build-depends: ghc-prim
src/Generics/Generic/Aeson.hs view
@@ -2,12 +2,14 @@     CPP   , FlexibleContexts   , FlexibleInstances-  , OverlappingInstances   , OverloadedStrings   , ScopedTypeVariables   , TupleSections   , TypeOperators   #-}+#if __GLASGOW_HASKELL__ < 710+{-# LANGUAGE OverlappingInstances #-}+#endif -- | This module offers generic conversions to an from JSON 'Value's -- for data types with a 'Generic' instance. --@@ -201,12 +203,21 @@     where       propName = selNameT set (undefined :: M1 S c f p) +#if __GLASGOW_HASKELL__ >= 710+instance {-# OVERLAPPING #-} (Selector c, ToJSON a) => GtoJson (M1 S c (K1 i (Maybe a))) where+#else instance (Selector c, ToJSON a) => GtoJson (M1 S c (K1 i (Maybe a))) where+#endif   gtoJSONf set   _  _   (M1 (K1 n@Nothing)) = case selNameT set (undefined :: M1 S c f p) of     Nothing -> Left [toJSON n]     Just _  -> Right []   gtoJSONf set mc enm (M1 (K1 (Just x))) = gtoJSONf set mc enm (M1 (K1 x) :: (M1 S c (K1 i a)) p)++#if __GLASGOW_HASKELL__ >= 710+instance {-# OVERLAPPING #-} (Selector c, FromJSON a) => GfromJson (M1 S c (K1 i (Maybe a))) where+#else instance (Selector c, FromJSON a) => GfromJson (M1 S c (K1 i (Maybe a))) where+#endif   gparseJSONf set mc smf enm =     do M1 (K1 x) <- parser        return (M1 (K1 (Just x)))
src/Generics/Generic/Aeson/Util.hs view
@@ -3,7 +3,11 @@   , OverloadedStrings   , ScopedTypeVariables   , TypeFamilies+  , CPP   #-}+#if MIN_VERSION_base(4,9,0)+{-# LANGUAGE DataKinds #-}+#endif -- | Helper functions that can be reused by libraries interoperating with generic-aeson. module Generics.Generic.Aeson.Util   ( formatLabel@@ -24,10 +28,18 @@  import Generics.Generic.IsEnum +#if MIN_VERSION_base(4,9,0)+conNameT :: forall (t :: * -> Meta -> (* -> *) -> * -> *) i c (f :: * -> *) p. Constructor c => Settings -> t i c f p -> Text+#else conNameT :: forall c (t :: * -> (* -> *) -> * -> *) (f :: * -> *) a. Constructor c => Settings -> t c f a -> Text+#endif conNameT set x = formatLabel set . T.pack . conName $ x +#if MIN_VERSION_base(4,9,0)+selNameT :: forall (t :: * -> Meta -> (* -> *) -> * -> *) i s (f :: * -> *) p. Selector s => Settings -> t i s f p -> Maybe Text+#else selNameT :: forall s (t :: * -> (* -> *) -> * -> *) (f :: * -> *) a. Selector s => Settings -> t s f a -> Maybe Text+#endif selNameT set x = case formatLabel set . T.pack . selName $ x of   "" -> Nothing   n  -> Just n