Skip to content

Commit

Permalink
FromJSON and ToJSON instances for Sum, Product, Any, All
Browse files Browse the repository at this point in the history
  • Loading branch information
AliceRixte committed Jun 11, 2024
1 parent ac5b5a4 commit 34ffbf6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/Data/Aeson/Types/FromJSON.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2342,6 +2342,16 @@ deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.Last a)
deriving via Identity instance FromJSON1 Semigroup.WrappedMonoid
deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.WrappedMonoid a)

deriving via Identity instance FromJSON1 Semigroup.Sum
deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.Sum a)

deriving via Identity instance FromJSON1 Semigroup.Product
deriving via (a :: Type) instance FromJSON a => FromJSON (Semigroup.Product a)

deriving via Bool instance FromJSON Semigroup.All

deriving via Bool instance FromJSON Semigroup.Any

#if !MIN_VERSION_base(4,16,0)
deriving via Maybe instance FromJSON1 Semigroup.Option
deriving via Maybe a instance FromJSON a => FromJSON (Semigroup.Option a)
Expand Down
12 changes: 11 additions & 1 deletion src/Data/Aeson/Types/ToJSON.hs
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ instance (key ~ Key, value ~ Value) => KeyValue Value (key, value) where
instance value ~ Value => KeyValue Value (KM.KeyMap value) where
(.=) = explicitToField toJSON
{-# INLINE (.=) #-}

explicitToField f name value = KM.singleton name (f value)
{-# INLINE explicitToField #-}

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

deriving via Identity instance ToJSON1 Semigroup.Sum
deriving via (a :: Type) instance ToJSON a => ToJSON (Semigroup.Sum a)

deriving via Identity instance ToJSON1 Semigroup.Product
deriving via (a :: Type) instance ToJSON a => ToJSON (Semigroup.Product a)

deriving via Bool instance ToJSON Semigroup.All

deriving via Bool instance ToJSON Semigroup.Any

#if !MIN_VERSION_base(4,16,0)
deriving via Maybe instance ToJSON1 Semigroup.Option
deriving via Maybe a instance ToJSON a => ToJSON (Semigroup.Option a)
Expand Down

0 comments on commit 34ffbf6

Please sign in to comment.