@@ -10,16 +10,14 @@
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.Internal (tuple, (>*<))
1616import Data.Aeson.Types.Class
1717import Data.Aeson.Types.Internal
18−import Data.Monoid ((<>))
1918
2019import qualified Data.Vector as V
2120import qualified Data.Vector.Mutable as VM (unsafeNew, unsafeWrite)
22−import qualified Data.ByteString.Builder as B
2321
2422#if MIN_VERSION_base(4,8,0)
2523#else
@@ -29,15 +27,6 @@ import Control.Applicative ((<$>), (<*>))
2927parseJSONElemAtIndex :: (Value -> Parser a) -> Int -> V.Vector Value -> Parser a
3028parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) <?> Index idx
3129
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−
4130-- Local copy of withArray
4231withArray :: String -> (Array -> Parser a) -> Value -> Parser a
4332withArray _ f (Array arr) = f arr
@@ -57,8 +46,8 @@ instance ToJSON2 ((,) ) where
5746 {-# INLINE liftToJSON2 #-}
5847
5948 liftToEncoding2 toA _ toB _ (a, b) = tuple $
60− fromEncoding (toA a) >*<
61− fromEncoding (toB b)
49+ toA a >*<
50+ toB b
6251 {-# INLINE liftToEncoding2 #-}
6352
6453instance (ToJSON a) => ToJSON1 ((,) a) where
@@ -102,9 +91,9 @@ instance (ToJSON a) => ToJSON2 ((,,) a) where
10291 {-# INLINE liftToJSON2 #-}
10392
10493 liftToEncoding2 toB _ toC _ (a, b, c) = tuple $
105− builder a >*<
106− fromEncoding (toB b) >*<
107− fromEncoding (toC c)
94+ toEncoding a >*<
95+ toB b >*<
96+ toC c
10897 {-# INLINE liftToEncoding2 #-}
10998
11099instance (ToJSON a, ToJSON b) => ToJSON1 ((,,) a b) where
@@ -150,10 +139,10 @@ instance (ToJSON a, ToJSON b) => ToJSON2 ((,,,) a b) where
150139 {-# INLINE liftToJSON2 #-}
151140
152141 liftToEncoding2 toC _ toD _ (a, b, c, d) = tuple $
153− builder a >*<
154− builder b >*<
155− fromEncoding (toC c) >*<
156− fromEncoding (toD d)
142+ toEncoding a >*<
143+ toEncoding b >*<
144+ toC c >*<
145+ toD d
157146 {-# INLINE liftToEncoding2 #-}
158147
159148instance (ToJSON a, ToJSON b, ToJSON c) => ToJSON1 ((,,,) a b c) where
@@ -201,11 +190,11 @@ instance (ToJSON a, ToJSON b, ToJSON c) => ToJSON2 ((,,,,) a b c) where
201190 {-# INLINE liftToJSON2 #-}
202191
203192 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)
193+ toEncoding a >*<
194+ toEncoding b >*<
195+ toEncoding c >*<
196+ toD d >*<
197+ toE e
209198 {-# INLINE liftToEncoding2 #-}
210199
211200instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON1 ((,,,,) a b c d) where
@@ -255,12 +244,12 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON2 ((,,,,,) a b c d) w
255244 {-# INLINE liftToJSON2 #-}
256245
257246 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)
247+ toEncoding a >*<
248+ toEncoding b >*<
249+ toEncoding c >*<
250+ toEncoding d >*<
251+ toE e >*<
252+ toF f
264253 {-# INLINE liftToEncoding2 #-}
265254
266255instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e) => ToJSON1 ((,,,,,) a b c d e) where
@@ -312,13 +301,13 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e) => ToJSON2 ((,,,,,,)
312301 {-# INLINE liftToJSON2 #-}
313302
314303 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)
304+ toEncoding a >*<
305+ toEncoding b >*<
306+ toEncoding c >*<
307+ toEncoding d >*<
308+ toEncoding e >*<
309+ toF f >*<
310+ toG g
322311 {-# INLINE liftToEncoding2 #-}
323312
324313instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f) => ToJSON1 ((,,,,,,) a b c d e f) where
@@ -372,14 +361,14 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f) => ToJSON2
372361 {-# INLINE liftToJSON2 #-}
373362
374363 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)
364+ toEncoding a >*<
365+ toEncoding b >*<
366+ toEncoding c >*<
367+ toEncoding d >*<
368+ toEncoding e >*<
369+ toEncoding f >*<
370+ toG g >*<
371+ toH h
383372 {-# INLINE liftToEncoding2 #-}
384373
385374instance (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 +424,15 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g)
435424 {-# INLINE liftToJSON2 #-}
436425
437426 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)
427+ toEncoding a >*<
428+ toEncoding b >*<
429+ toEncoding c >*<
430+ toEncoding d >*<
431+ toEncoding e >*<
432+ toEncoding f >*<
433+ toEncoding g >*<
434+ toH h >*<
435+ toI i
447436 {-# INLINE liftToEncoding2 #-}
448437
449438instance (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 +490,16 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
501490 {-# INLINE liftToJSON2 #-}
502491
503492 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)
493+ toEncoding a >*<
494+ toEncoding b >*<
495+ toEncoding c >*<
496+ toEncoding d >*<
497+ toEncoding e >*<
498+ toEncoding f >*<
499+ toEncoding g >*<
500+ toEncoding h >*<
501+ toI i >*<
502+ toJ j
514503 {-# INLINE liftToEncoding2 #-}
515504
516505instance (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 +559,17 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
570559 {-# INLINE liftToJSON2 #-}
571560
572561 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)
562+ toEncoding a >*<
563+ toEncoding b >*<
564+ toEncoding c >*<
565+ toEncoding d >*<
566+ toEncoding e >*<
567+ toEncoding f >*<
568+ toEncoding g >*<
569+ toEncoding h >*<
570+ toEncoding i >*<
571+ toJ j >*<
572+ toK k
584573 {-# INLINE liftToEncoding2 #-}
585574
586575instance (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 +631,18 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
642631 {-# INLINE liftToJSON2 #-}
643632
644633 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)
634+ toEncoding a >*<
635+ toEncoding b >*<
636+ toEncoding c >*<
637+ toEncoding d >*<
638+ toEncoding e >*<
639+ toEncoding f >*<
640+ toEncoding g >*<
641+ toEncoding h >*<
642+ toEncoding i >*<
643+ toEncoding j >*<
644+ toK k >*<
645+ toL l
657646 {-# INLINE liftToEncoding2 #-}
658647
659648instance (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 +706,19 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
717706 {-# INLINE liftToJSON2 #-}
718707
719708 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)
709+ toEncoding a >*<
710+ toEncoding b >*<
711+ toEncoding c >*<
712+ toEncoding d >*<
713+ toEncoding e >*<
714+ toEncoding f >*<
715+ toEncoding g >*<
716+ toEncoding h >*<
717+ toEncoding i >*<
718+ toEncoding j >*<
719+ toEncoding k >*<
720+ toL l >*<
721+ toM m
733722 {-# INLINE liftToEncoding2 #-}
734723
735724instance (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 +784,20 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
795784 {-# INLINE liftToJSON2 #-}
796785
797786 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)
787+ toEncoding a >*<
788+ toEncoding b >*<
789+ toEncoding c >*<
790+ toEncoding d >*<
791+ toEncoding e >*<
792+ toEncoding f >*<
793+ toEncoding g >*<
794+ toEncoding h >*<
795+ toEncoding i >*<
796+ toEncoding j >*<
797+ toEncoding k >*<
798+ toEncoding l >*<
799+ toM m >*<
800+ toN n
812801 {-# INLINE liftToEncoding2 #-}
813802
814803instance (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 +865,21 @@ instance (ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g,
876865 {-# INLINE liftToJSON2 #-}
877866
878867 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)
868+ toEncoding a >*<
869+ toEncoding b >*<
870+ toEncoding c >*<
871+ toEncoding d >*<
872+ toEncoding e >*<
873+ toEncoding f >*<
874+ toEncoding g >*<
875+ toEncoding h >*<
876+ toEncoding i >*<
877+ toEncoding j >*<
878+ toEncoding k >*<
879+ toEncoding l >*<
880+ toEncoding m >*<
881+ toN n >*<
882+ toO o
894883 {-# INLINE liftToEncoding2 #-}
895884
896885instance (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 +924,3 @@ instance (FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f
935924instance (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
936925 parseJSON = parseJSON2
937926 {-# INLINE parseJSON #-}
938−
939−