Skip to content

Commit 34ffbf6

Browse files
committed
FromJSON and ToJSON instances for Sum, Product, Any, All
1 parent ac5b5a4 commit 34ffbf6

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/Data/Aeson/Types/FromJSON.hs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2342,6 +2342,16 @@ deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.Last a)
23422342
deriving via Identity instance FromJSON1 Semigroup.WrappedMonoid
23432343
deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.WrappedMonoid a)
23442344

2345+
deriving via Identity instance FromJSON1 Semigroup.Sum
2346+
deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.Sum a)
2347+
2348+
deriving via Identity instance FromJSON1 Semigroup.Product
2349+
deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.Product a)
2350+
2351+
deriving via Bool instance FromJSON Semigroup.All
2352+
2353+
deriving via Bool instance FromJSON Semigroup.Any
2354+
23452355
#if !MIN_VERSION_base(4,16,0)
23462356
deriving via Maybe instance FromJSON1 Semigroup.Option
23472357
deriving via Maybe a instance FromJSON a => FromJSON (Semigroup.Option a)

src/Data/Aeson/Types/ToJSON.hs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ instance (key ~ Key, value ~ Value) => KeyValue Value (key, value) where
367367
instance value ~ Value => KeyValue Value (KM.KeyMap value) where
368368
(.=) = explicitToField toJSON
369369
{-# INLINE (.=) #-}
370-
370+
371371
explicitToField f name value = KM.singleton name (f value)
372372
{-# INLINE explicitToField #-}
373373

@@ -2104,6 +2104,16 @@ deriving via (a :: Type) instance ToJSON a => ToJSON (Semigroup.Last a)
21042104
deriving via Identity instance ToJSON1 Semigroup.WrappedMonoid
21052105
deriving via (a :: Type) instance ToJSON a => ToJSON (Semigroup.WrappedMonoid a)
21062106

2107+
deriving via Identity instance ToJSON1 Semigroup.Sum
2108+
deriving via (a :: Type) instance ToJSON a => ToJSON (Semigroup.Sum a)
2109+
2110+
deriving via Identity instance ToJSON1 Semigroup.Product
2111+
deriving via (a :: Type) instance ToJSON a => ToJSON (Semigroup.Product a)
2112+
2113+
deriving via Bool instance ToJSON Semigroup.All
2114+
2115+
deriving via Bool instance ToJSON Semigroup.Any
2116+
21072117
#if !MIN_VERSION_base(4,16,0)
21082118
deriving via Maybe instance ToJSON1 Semigroup.Option
21092119
deriving via Maybe a instance ToJSON a => ToJSON (Semigroup.Option a)

0 commit comments

Comments
 (0)