on 1.1.2.0-r1 help sign in
239 lines 9.0 kB history raw
1{-# LANGUAGE CPP #-}
2{-# LANGUAGE GADTs #-}
3{-# LANGUAGE TemplateHaskell #-}
5module DataFamilies.Encoders where
7import Prelude ()
8import Prelude.Compat
10import Data.Aeson.TH
11import Data.Aeson.Types
12import DataFamilies.Types
13import Options
15--------------------------------------------------------------------------------
16-- Nullary encoders/decoders
17--------------------------------------------------------------------------------
19thNullaryToJSONString :: Nullary Int -> Value
20thNullaryToJSONString = $(mkToJSON defaultOptions 'C1)
22thNullaryToEncodingString :: Nullary Int -> Encoding
23thNullaryToEncodingString = $(mkToEncoding defaultOptions 'C2)
25thNullaryParseJSONString :: Value -> Parser (Nullary Int)
26thNullaryParseJSONString = $(mkParseJSON defaultOptions 'C3)
29thNullaryToJSON2ElemArray :: Nullary Int -> Value
30thNullaryToJSON2ElemArray = $(mkToJSON opts2ElemArray 'C1)
32thNullaryToEncoding2ElemArray :: Nullary Int -> Encoding
33thNullaryToEncoding2ElemArray = $(mkToEncoding opts2ElemArray 'C2)
35thNullaryParseJSON2ElemArray :: Value -> Parser (Nullary Int)
36thNullaryParseJSON2ElemArray = $(mkParseJSON opts2ElemArray 'C3)
39thNullaryToJSONTaggedObject :: Nullary Int -> Value
40thNullaryToJSONTaggedObject = $(mkToJSON optsTaggedObject 'C1)
42thNullaryToEncodingTaggedObject :: Nullary Int -> Encoding
43thNullaryToEncodingTaggedObject = $(mkToEncoding optsTaggedObject 'C2)
45thNullaryParseJSONTaggedObject :: Value -> Parser (Nullary Int)
46thNullaryParseJSONTaggedObject = $(mkParseJSON optsTaggedObject 'C3)
49thNullaryToJSONObjectWithSingleField :: Nullary Int -> Value
50thNullaryToJSONObjectWithSingleField =
51 $(mkToJSON optsObjectWithSingleField 'C1)
53thNullaryToEncodingObjectWithSingleField :: Nullary Int -> Encoding
54thNullaryToEncodingObjectWithSingleField =
55 $(mkToEncoding optsObjectWithSingleField 'C2)
57thNullaryParseJSONObjectWithSingleField :: Value -> Parser (Nullary Int)
58thNullaryParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField 'C3)
61--------------------------------------------------------------------------------
62-- SomeType encoders/decoders
63--------------------------------------------------------------------------------
65thSomeTypeToJSON2ElemArray :: SomeType c () Int -> Value
66thSomeTypeToJSON2ElemArray = $(mkToJSON opts2ElemArray 'Nullary)
68thSomeTypeToEncoding2ElemArray :: SomeType c () Int -> Encoding
69thSomeTypeToEncoding2ElemArray = $(mkToEncoding opts2ElemArray 'Unary)
71thSomeTypeParseJSON2ElemArray :: Value -> Parser (SomeType c () Int)
72thSomeTypeParseJSON2ElemArray = $(mkParseJSON opts2ElemArray 'Product)
75thSomeTypeToJSONTaggedObject :: SomeType c () Int -> Value
76thSomeTypeToJSONTaggedObject = $(mkToJSON optsTaggedObject 'Record)
78thSomeTypeToEncodingTaggedObject :: SomeType c () Int -> Encoding
79thSomeTypeToEncodingTaggedObject = $(mkToEncoding optsTaggedObject 'Nullary)
81thSomeTypeParseJSONTaggedObject :: Value -> Parser (SomeType c () Int)
82thSomeTypeParseJSONTaggedObject = $(mkParseJSON optsTaggedObject 'Unary)
85thSomeTypeToJSONObjectWithSingleField :: SomeType c () Int -> Value
86thSomeTypeToJSONObjectWithSingleField =
87 $(mkToJSON optsObjectWithSingleField 'Product)
89thSomeTypeToEncodingObjectWithSingleField :: SomeType c () Int -> Encoding
90thSomeTypeToEncodingObjectWithSingleField =
91 $(mkToEncoding optsObjectWithSingleField 'Record)
93thSomeTypeParseJSONObjectWithSingleField :: Value -> Parser (SomeType c () Int)
94thSomeTypeParseJSONObjectWithSingleField =
95 $(mkParseJSON optsObjectWithSingleField 'Nullary)
98--------------------------------------------------------------------------------
99-- Approx encoders/decoders
100--------------------------------------------------------------------------------
102thApproxToJSONUnwrap :: Approx String -> Value
103thApproxToJSONUnwrap = $(mkToJSON optsUnwrapUnaryRecords 'Approx)
105thApproxToEncodingUnwrap :: Approx String -> Encoding
106thApproxToEncodingUnwrap = $(mkToEncoding optsUnwrapUnaryRecords 'Approx)
108thApproxParseJSONUnwrap :: Value -> Parser (Approx String)
109thApproxParseJSONUnwrap = $(mkParseJSON optsUnwrapUnaryRecords 'Approx)
112thApproxToJSONDefault :: Approx String -> Value
113thApproxToJSONDefault = $(mkToJSON defaultOptions 'Approx)
115thApproxToEncodingDefault :: Approx String -> Encoding
116thApproxToEncodingDefault = $(mkToEncoding defaultOptions 'Approx)
118thApproxParseJSONDefault :: Value -> Parser (Approx String)
119thApproxParseJSONDefault = $(mkParseJSON defaultOptions 'Approx)
121--------------------------------------------------------------------------------
122-- GADT encoders/decoders
123--------------------------------------------------------------------------------
125thGADTToJSONUnwrap :: GADT String -> Value
126thGADTToJSONUnwrap = $(mkToJSON optsUnwrapUnaryRecords 'GADT)
128thGADTToEncodingUnwrap :: GADT String -> Encoding
129thGADTToEncodingUnwrap = $(mkToEncoding optsUnwrapUnaryRecords 'GADT)
131thGADTParseJSONUnwrap :: Value -> Parser (GADT String)
132thGADTParseJSONUnwrap = $(mkParseJSON optsUnwrapUnaryRecords 'GADT)
135thGADTToJSONDefault :: GADT String -> Value
136thGADTToJSONDefault = $(mkToJSON defaultOptions 'GADT)
138thGADTToEncodingDefault :: GADT String -> Encoding
139thGADTToEncodingDefault = $(mkToEncoding defaultOptions 'GADT)
141thGADTParseJSONDefault :: Value -> Parser (GADT String)
142thGADTParseJSONDefault = $(mkParseJSON defaultOptions 'GADT)
144--------------------------------------------------------------------------------
145-- Generic encoders/decoders
146--------------------------------------------------------------------------------
148-- Nullary
150gNullaryToJSONString :: Nullary Int -> Value
151gNullaryToJSONString = genericToJSON defaultOptions
153gNullaryToEncodingString :: Nullary Int -> Encoding
154gNullaryToEncodingString = genericToEncoding defaultOptions
156gNullaryParseJSONString :: Value -> Parser (Nullary Int)
157gNullaryParseJSONString = genericParseJSON defaultOptions
160gNullaryToJSON2ElemArray :: Nullary Int -> Value
161gNullaryToJSON2ElemArray = genericToJSON opts2ElemArray
163gNullaryToEncoding2ElemArray :: Nullary Int -> Encoding
164gNullaryToEncoding2ElemArray = genericToEncoding opts2ElemArray
166gNullaryParseJSON2ElemArray :: Value -> Parser (Nullary Int)
167gNullaryParseJSON2ElemArray = genericParseJSON opts2ElemArray
170gNullaryToJSONTaggedObject :: Nullary Int -> Value
171gNullaryToJSONTaggedObject = genericToJSON optsTaggedObject
173gNullaryToEncodingTaggedObject :: Nullary Int -> Encoding
174gNullaryToEncodingTaggedObject = genericToEncoding optsTaggedObject
176gNullaryParseJSONTaggedObject :: Value -> Parser (Nullary Int)
177gNullaryParseJSONTaggedObject = genericParseJSON optsTaggedObject
180gNullaryToJSONObjectWithSingleField :: Nullary Int -> Value
181gNullaryToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
183gNullaryToEncodingObjectWithSingleField :: Nullary Int -> Encoding
184gNullaryToEncodingObjectWithSingleField = genericToEncoding optsObjectWithSingleField
186gNullaryParseJSONObjectWithSingleField :: Value -> Parser (Nullary Int)
187gNullaryParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
189-- SomeType
191gSomeTypeToJSON2ElemArray :: SomeType c () Int -> Value
192gSomeTypeToJSON2ElemArray = genericToJSON opts2ElemArray
194gSomeTypeToEncoding2ElemArray :: SomeType c () Int -> Encoding
195gSomeTypeToEncoding2ElemArray = genericToEncoding opts2ElemArray
197gSomeTypeParseJSON2ElemArray :: Value -> Parser (SomeType c () Int)
198gSomeTypeParseJSON2ElemArray = genericParseJSON opts2ElemArray
201gSomeTypeToJSONTaggedObject :: SomeType c () Int -> Value
202gSomeTypeToJSONTaggedObject = genericToJSON optsTaggedObject
204gSomeTypeToEncodingTaggedObject :: SomeType c () Int -> Encoding
205gSomeTypeToEncodingTaggedObject = genericToEncoding optsTaggedObject
207gSomeTypeParseJSONTaggedObject :: Value -> Parser (SomeType c () Int)
208gSomeTypeParseJSONTaggedObject = genericParseJSON optsTaggedObject
211gSomeTypeToJSONObjectWithSingleField :: SomeType c () Int -> Value
212gSomeTypeToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
214gSomeTypeToEncodingObjectWithSingleField :: SomeType c () Int -> Encoding
215gSomeTypeToEncodingObjectWithSingleField = genericToEncoding optsObjectWithSingleField
217gSomeTypeParseJSONObjectWithSingleField :: Value -> Parser (SomeType c () Int)
218gSomeTypeParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
220-- Approx
222gApproxToJSONUnwrap :: Approx String -> Value
223gApproxToJSONUnwrap = genericToJSON optsUnwrapUnaryRecords
225gApproxToEncodingUnwrap :: Approx String -> Encoding
226gApproxToEncodingUnwrap = genericToEncoding optsUnwrapUnaryRecords
228gApproxParseJSONUnwrap :: Value -> Parser (Approx String)
229gApproxParseJSONUnwrap = genericParseJSON optsUnwrapUnaryRecords
232gApproxToJSONDefault :: Approx String -> Value
233gApproxToJSONDefault = genericToJSON defaultOptions
235gApproxToEncodingDefault :: Approx String -> Encoding
236gApproxToEncodingDefault = genericToEncoding defaultOptions
238gApproxParseJSONDefault :: Value -> Parser (Approx String)
239gApproxParseJSONDefault = genericParseJSON defaultOptions