Skip to content

Commit dcb4a7e

Browse files
authored
Merge pull request #524 from Lysxia/refactor-generic
Refactor Generic ToJSON
2 parents 83f2830 + 55b360d commit dcb4a7e

File tree

8 files changed

+403
-478
lines changed

8 files changed

+403
-478
lines changed

Data/Aeson.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ module Data.Aeson
7676
-- ** Generic JSON classes and options
7777
, GFromJSON(..)
7878
, FromArgs(..)
79-
, GToJSON(..)
80-
, GToEncoding(..)
79+
, GToJSON
80+
, GToEncoding
8181
, ToArgs(..)
8282
, Zero
8383
, One

Data/Aeson/Encoding.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module Data.Aeson.Encoding
1414
, Series
1515
, pairs
1616
, pair
17+
, pairStr
1718
, pair'
1819
-- * Predicates
1920
, nullEncoding

Data/Aeson/Encoding/Internal.hs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module Data.Aeson.Encoding.Internal
1313
, Series (..)
1414
, pairs
1515
, pair
16+
, pairStr
1617
, pair'
1718
-- * Predicates
1819
, nullEncoding
@@ -124,6 +125,11 @@ data Series = Empty
124125

125126
pair :: Text -> Encoding -> Series
126127
pair name val = pair' (text name) val
128+
{-# INLINE pair #-}
129+
130+
pairStr :: String -> Encoding -> Series
131+
pairStr name val = pair' (string name) val
132+
{-# INLINE pairStr #-}
127133

128134
pair' :: Encoding' Text -> Encoding -> Series
129135
pair' name val = Value $ retagEncoding $ retagEncoding name >< colon >< val

Data/Aeson/Types.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ module Data.Aeson.Types
6363
-- ** Generic JSON classes
6464
, GFromJSON(..)
6565
, FromArgs(..)
66-
, GToJSON(..)
67-
, GToEncoding(..)
66+
, GToJSON
67+
, GToEncoding
6868
, ToArgs(..)
6969
, Zero
7070
, One

Data/Aeson/Types/Class.hs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{-# LANGUAGE CPP #-}
2+
{-# LANGUAGE ConstraintKinds #-}
23
{-# LANGUAGE FlexibleContexts #-}
34
{-# LANGUAGE FlexibleInstances #-}
45
{-# LANGUAGE GADTs #-}
@@ -36,8 +37,8 @@ module Data.Aeson.Types.Class
3637
-- * Generic JSON classes
3738
, GFromJSON(..)
3839
, FromArgs(..)
39-
, GToJSON(..)
40-
, GToEncoding(..)
40+
, GToJSON
41+
, GToEncoding
4142
, ToArgs(..)
4243
, Zero
4344
, One
@@ -94,4 +95,10 @@ import Prelude ()
9495

9596
import Data.Aeson.Types.FromJSON
9697
import Data.Aeson.Types.Generic (One, Zero)
97-
import Data.Aeson.Types.ToJSON
98+
import Data.Aeson.Types.ToJSON hiding (GToJSON)
99+
import qualified Data.Aeson.Types.ToJSON as ToJSON
100+
import Data.Aeson.Types.Internal (Value)
101+
import Data.Aeson.Encoding (Encoding)
102+
103+
type GToJSON = ToJSON.GToJSON Value
104+
type GToEncoding = ToJSON.GToJSON Encoding

0 commit comments

Comments
 (0)