@@ -10,16 +10,15 @@
1010-- Portability: portable
1111--
1212-- Tuple instances
13−module Data.Aeson.Types.Instances.Tuple (tuple, (>*<)) where
13+module Data.Aeson.Types.Instances.Tuple () where
1414
15−import Data.Aeson.Encode.Functions (builder)
15+import Data.Aeson.Encoding (tuple, (>*<))
1616import Data.Aeson.Types.Class
1717import Data.Aeson.Types.Internal
1818import Data.Monoid ((<>))
1919
2020import qualified Data.Vector as V
2121import qualified Data.Vector.Mutable as VM (unsafeNew, unsafeWrite)
22−import qualified Data.ByteString.Builder as B
2322
2423#if MIN_VERSION_base(4,8,0)
2524#else
@@ -29,15 +28,6 @@ import Control.Applicative ((<$>), (<*>))
2928parseJSONElemAtIndex :: (Value -> Parser a) -> Int -> V.Vector Value -> Parser a
3029parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) <?> Index idx
3130
32−(>*<) :: B.Builder -> B.Builder -> B.Builder
33−a >*< b = a <> B.char7 ',' <> b
34−{-# INLINE (>*<) #-}
35−infixr 6 >*<
36−
37−tuple :: B.Builder -> Encoding
38−tuple b = Encoding (B.char7 '[' <> b <> B.char7 ']')
39−{-# INLINE tuple #-}
40−
4131-- Local copy of withArray
4232withArray :: String -> (Array -> Parser a) -> Value -> Parser a
4333withArray _ f (Array arr) = f arr
@@ -57,8 +47,8 @@ instance ToJSON2 ((,) ) where
5747 {-# INLINE liftToJSON2 #-}
5848
5949 liftToEncoding2 toA _ toB _ (a, b) = tuple $
60− fromEncoding (toA a) >*<
61− fromEncoding (toB b)
50+ toA a >*<
51+ toB b
6252 {-# INLINE liftToEncoding2 #-}
6353
6454instance (ToJSON a) => ToJSON1 ((,) a) where
@@ -102,9 +92,9 @@ instance (ToJSON a) => ToJSON2 ((,,) a) where
10292 {-# INLINE liftToJSON2 #-}
10393
10494 liftToEncoding2 toB _ toC _ (a, b, c) = tuple $
105− builder a >*<
106− fromEncoding (toB b) >*<
107− fromEncoding (toC c)
95+ toEncoding a >*<
96+ toB b >*<
97+ toC c
10898 {-# INLINE liftToEncoding2 #-}
10999
110100instance (ToJSON a, ToJSON b) => ToJSON1 ((,,) a b) where
@@ -150,10 +140,10 @@ instance (ToJSON a, ToJSON b) => ToJSON2 ((,,,) a b) where
150140 {-# INLINE liftToJSON2 #-}
151141
152142 liftToEncoding2 toC _ toD _ (a, b, c, d) = tuple $
153− builder a >*<
154− builder b >*<
155− fromEncoding (toC c) >*<
156− fromEncoding (toD d)
143+ toEncoding a >*<
144+ toEncoding b >*<
145+ toC c >*<
146+ toD d
157147 {-# INLINE liftToEncoding2 #-}
158148
159149instance (ToJSON a, ToJSON b, ToJSON c) => ToJSON1 ((,,,) a b c) where
@@ -201,11 +191,11 @@ instance (ToJSON a, ToJSON b, ToJSON c) => ToJSON2 ((,,,,) a b c) where
201191 {-# INLINE liftToJSON2 #-}
202192
203193 liftToEncoding2 toD _ toE _ (a, b, c, d, e) = tuple $
204− builder a >*<
205− builder b >*<
206− builder c >*<
207− fromEncoding (toD d) >*<
208− fromEncoding (toE e)
194+ toEncoding a >*<
195+ toEncoding b >*<
196+ toEncoding c >*<
197+ toD d >*<
198+ toE e
209199 {-# INLINE liftToEncoding2 #-}
210200
211201instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON1 ((,,,,) a b c d) where
@@ -255,12 +245,12 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON2 ((,,,,,) a b c d) w
255245 {-# INLINE liftToJSON2 #-}
256246
257247 liftToEncoding2 toE _ toF _ (a, b, c, d, e, f) = tuple $
258− builder a >*<
259− builder b >*<
260− builder c >*<
261− builder d >*<
262− fromEncoding (toE e) >*<
263− fromEncoding (toF f)
248+ toEncoding a >*<
249+ toEncoding b >*<
250+ toEncoding c >*<
251+ toEncoding d >*<
252+ toE e >*<
253+ toF f
264254 {-# INLINE liftToEncoding2 #-}
265255
266256instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e) => ToJSON1 ((,,,,,) a b c d e) where
@@ -312,13 +302,13 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e) => ToJSON2 ((,,,,,,)
312302 {-# INLINE liftToJSON2 #-}
313303
314304 liftToEncoding2 toF _ toG _ (a, b, c, d, e, f, g) = tuple $
315− builder a >*<
316− builder b >*<
317− builder c >*<
318− builder d >*<
319− builder e >*<
320− fromEncoding (toF f) >*<
321− fromEncoding (toG g)
305+ toEncoding a >*<
306+ toEncoding b >*<
307+ toEncoding c >*<
308+ toEncoding d >*<
309+ toEncoding e >*<
310+ toF f >*<
311+ toG g
322312 {-# INLINE liftToEncoding2 #-}
323313
324314instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f) => ToJSON1 ((,,,,,,) a b c d e f) where
@@ -372,14 +362,14 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f) => ToJSON2
372362 {-# INLINE liftToJSON2 #-}
373363
374364 liftToEncoding2 toG _ toH _ (a, b, c, d, e, f, g, h) = tuple $
375− builder a >*<
376− builder b >*<
377− builder c >*<
378− builder d >*<
379− builder e >*<
380− builder f >*<
381− fromEncoding (toG g) >*<
382− fromEncoding (toH h)
365+ toEncoding a >*<
366+ toEncoding b >*<
367+ toEncoding c >*<
368+ toEncoding d >*<
369+ toEncoding e >*<
370+ toEncoding f >*<
371+ toG g >*<
372+ toH h
383373 {-# INLINE liftToEncoding2 #-}
384374
385375instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g) => ToJSON1 ((,,,,,,,) a b c d e f g) where
@@ -435,15 +425,15 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g)
435425 {-# INLINE liftToJSON2 #-}
436426
437427 liftToEncoding2 toH _ toI _ (a, b, c, d, e, f, g, h, i) = tuple $
438− builder a >*<
439− builder b >*<
440− builder c >*<
441− builder d >*<
442− builder e >*<
443− builder f >*<
444− builder g >*<
445− fromEncoding (toH h) >*<
446− fromEncoding (toI i)
428+ toEncoding a >*<
429+ toEncoding b >*<
430+ toEncoding c >*<
431+ toEncoding d >*<
432+ toEncoding e >*<
433+ toEncoding f >*<
434+ toEncoding g >*<
435+ toH h >*<
436+ toI i
447437 {-# INLINE liftToEncoding2 #-}
448438
449439instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h) => ToJSON1 ((,,,,,,,,) a b c d e f g h) where
@@ -501,16 +491,16 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
501491 {-# INLINE liftToJSON2 #-}
502492
503493 liftToEncoding2 toI _ toJ _ (a, b, c, d, e, f, g, h, i, j) = tuple $
504− builder a >*<
505− builder b >*<
506− builder c >*<
507− builder d >*<
508− builder e >*<
509− builder f >*<
510− builder g >*<
511− builder h >*<
512− fromEncoding (toI i) >*<
513− fromEncoding (toJ j)
494+ toEncoding a >*<
495+ toEncoding b >*<
496+ toEncoding c >*<
497+ toEncoding d >*<
498+ toEncoding e >*<
499+ toEncoding f >*<
500+ toEncoding g >*<
501+ toEncoding h >*<
502+ toI i >*<
503+ toJ j
514504 {-# INLINE liftToEncoding2 #-}
515505
516506instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i) => ToJSON1 ((,,,,,,,,,) a b c d e f g h i) where
@@ -570,17 +560,17 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
570560 {-# INLINE liftToJSON2 #-}
571561
572562 liftToEncoding2 toJ _ toK _ (a, b, c, d, e, f, g, h, i, j, k) = tuple $
573− builder a >*<
574− builder b >*<
575− builder c >*<
576− builder d >*<
577− builder e >*<
578− builder f >*<
579− builder g >*<
580− builder h >*<
581− builder i >*<
582− fromEncoding (toJ j) >*<
583− fromEncoding (toK k)
563+ toEncoding a >*<
564+ toEncoding b >*<
565+ toEncoding c >*<
566+ toEncoding d >*<
567+ toEncoding e >*<
568+ toEncoding f >*<
569+ toEncoding g >*<
570+ toEncoding h >*<
571+ toEncoding i >*<
572+ toJ j >*<
573+ toK k
584574 {-# INLINE liftToEncoding2 #-}
585575
586576instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j) => ToJSON1 ((,,,,,,,,,,) a b c d e f g h i j) where
@@ -642,18 +632,18 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
642632 {-# INLINE liftToJSON2 #-}
643633
644634 liftToEncoding2 toK _ toL _ (a, b, c, d, e, f, g, h, i, j, k, l) = tuple $
645− builder a >*<
646− builder b >*<
647− builder c >*<
648− builder d >*<
649− builder e >*<
650− builder f >*<
651− builder g >*<
652− builder h >*<
653− builder i >*<
654− builder j >*<
655− fromEncoding (toK k) >*<
656− fromEncoding (toL l)
635+ toEncoding a >*<
636+ toEncoding b >*<
637+ toEncoding c >*<
638+ toEncoding d >*<
639+ toEncoding e >*<
640+ toEncoding f >*<
641+ toEncoding g >*<
642+ toEncoding h >*<
643+ toEncoding i >*<
644+ toEncoding j >*<
645+ toK k >*<
646+ toL l
657647 {-# INLINE liftToEncoding2 #-}
658648
659649instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k) => ToJSON1 ((,,,,,,,,,,,) a b c d e f g h i j k) where
@@ -717,19 +707,19 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
717707 {-# INLINE liftToJSON2 #-}
718708
719709 liftToEncoding2 toL _ toM _ (a, b, c, d, e, f, g, h, i, j, k, l, m) = tuple $
720− builder a >*<
721− builder b >*<
722− builder c >*<
723− builder d >*<
724− builder e >*<
725− builder f >*<
726− builder g >*<
727− builder h >*<
728− builder i >*<
729− builder j >*<
730− builder k >*<
731− fromEncoding (toL l) >*<
732− fromEncoding (toM m)
710+ toEncoding a >*<
711+ toEncoding b >*<
712+ toEncoding c >*<
713+ toEncoding d >*<
714+ toEncoding e >*<
715+ toEncoding f >*<
716+ toEncoding g >*<
717+ toEncoding h >*<
718+ toEncoding i >*<
719+ toEncoding j >*<
720+ toEncoding k >*<
721+ toL l >*<
722+ toM m
733723 {-# INLINE liftToEncoding2 #-}
734724
735725instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l) => ToJSON1 ((,,,,,,,,,,,,) a b c d e f g h i j k l) where
@@ -795,20 +785,20 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
795785 {-# INLINE liftToJSON2 #-}
796786
797787 liftToEncoding2 toM _ toN _ (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = tuple $
798− builder a >*<
799− builder b >*<
800− builder c >*<
801− builder d >*<
802− builder e >*<
803− builder f >*<
804− builder g >*<
805− builder h >*<
806− builder i >*<
807− builder j >*<
808− builder k >*<
809− builder l >*<
810− fromEncoding (toM m) >*<
811− fromEncoding (toN n)
788+ toEncoding a >*<
789+ toEncoding b >*<
790+ toEncoding c >*<
791+ toEncoding d >*<
792+ toEncoding e >*<
793+ toEncoding f >*<
794+ toEncoding g >*<
795+ toEncoding h >*<
796+ toEncoding i >*<
797+ toEncoding j >*<
798+ toEncoding k >*<
799+ toEncoding l >*<
800+ toM m >*<
801+ toN n
812802 {-# INLINE liftToEncoding2 #-}
813803
814804instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m) => ToJSON1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m) where
@@ -876,21 +866,21 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
876866 {-# INLINE liftToJSON2 #-}
877867
878868 liftToEncoding2 toN _ toO _ (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = tuple $
879− builder a >*<
880− builder b >*<
881− builder c >*<
882− builder d >*<
883− builder e >*<
884− builder f >*<
885− builder g >*<
886− builder h >*<
887− builder i >*<
888− builder j >*<
889− builder k >*<
890− builder l >*<
891− builder m >*<
892− fromEncoding (toN n) >*<
893− fromEncoding (toO o)
869+ toEncoding a >*<
870+ toEncoding b >*<
871+ toEncoding c >*<
872+ toEncoding d >*<
873+ toEncoding e >*<
874+ toEncoding f >*<
875+ toEncoding g >*<
876+ toEncoding h >*<
877+ toEncoding i >*<
878+ toEncoding j >*<
879+ toEncoding k >*<
880+ toEncoding l >*<
881+ toEncoding m >*<
882+ toN n >*<
883+ toO o
894884 {-# INLINE liftToEncoding2 #-}
895885
896886instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n) => ToJSON1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n) where
@@ -935,5 +925,3 @@ instance (FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f
935925instance (FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n, FromJSON o) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) where
936926 parseJSON = parseJSON2
937927 {-# INLINE parseJSON #-}
938−
939−