on 0.11.1.2 help sign in
typeable/aeson/tests/Encoders.hs
199 lines 7.4 kB history raw
1{-# LANGUAGE GADTs #-}
2{-# LANGUAGE TemplateHaskell #-}
4module Encoders where
6import Data.Aeson.TH
7import Data.Aeson.Types
8import Options
9import Types
11--------------------------------------------------------------------------------
12-- Nullary encoders/decoders
13--------------------------------------------------------------------------------
15thNullaryToJSONString :: Nullary -> Value
16thNullaryToJSONString = $(mkToJSON defaultOptions ''Nullary)
18thNullaryToEncodingString :: Nullary -> Encoding
19thNullaryToEncodingString = $(mkToEncoding defaultOptions ''Nullary)
21thNullaryParseJSONString :: Value -> Parser Nullary
22thNullaryParseJSONString = $(mkParseJSON defaultOptions ''Nullary)
25thNullaryToJSON2ElemArray :: Nullary -> Value
26thNullaryToJSON2ElemArray = $(mkToJSON opts2ElemArray ''Nullary)
28thNullaryToEncoding2ElemArray :: Nullary -> Encoding
29thNullaryToEncoding2ElemArray = $(mkToEncoding opts2ElemArray ''Nullary)
31thNullaryParseJSON2ElemArray :: Value -> Parser Nullary
32thNullaryParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''Nullary)
35thNullaryToJSONTaggedObject :: Nullary -> Value
36thNullaryToJSONTaggedObject = $(mkToJSON optsTaggedObject ''Nullary)
38thNullaryToEncodingTaggedObject :: Nullary -> Encoding
39thNullaryToEncodingTaggedObject = $(mkToEncoding optsTaggedObject ''Nullary)
41thNullaryParseJSONTaggedObject :: Value -> Parser Nullary
42thNullaryParseJSONTaggedObject = $(mkParseJSON optsTaggedObject ''Nullary)
45thNullaryToJSONObjectWithSingleField :: Nullary -> Value
46thNullaryToJSONObjectWithSingleField =
47 $(mkToJSON optsObjectWithSingleField ''Nullary)
49thNullaryToEncodingObjectWithSingleField :: Nullary -> Encoding
50thNullaryToEncodingObjectWithSingleField =
51 $(mkToEncoding optsObjectWithSingleField ''Nullary)
53thNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
54thNullaryParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField ''Nullary)
56gNullaryToJSONString :: Nullary -> Value
57gNullaryToJSONString = genericToJSON defaultOptions
59gNullaryParseJSONString :: Value -> Parser Nullary
60gNullaryParseJSONString = genericParseJSON defaultOptions
63gNullaryToJSON2ElemArray :: Nullary -> Value
64gNullaryToJSON2ElemArray = genericToJSON opts2ElemArray
66gNullaryParseJSON2ElemArray :: Value -> Parser Nullary
67gNullaryParseJSON2ElemArray = genericParseJSON opts2ElemArray
70gNullaryToJSONTaggedObject :: Nullary -> Value
71gNullaryToJSONTaggedObject = genericToJSON optsTaggedObject
73gNullaryParseJSONTaggedObject :: Value -> Parser Nullary
74gNullaryParseJSONTaggedObject = genericParseJSON optsTaggedObject
77gNullaryToJSONObjectWithSingleField :: Nullary -> Value
78gNullaryToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
80gNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
81gNullaryParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
84--------------------------------------------------------------------------------
85-- SomeType encoders/decoders
86--------------------------------------------------------------------------------
88thSomeTypeToJSON2ElemArray :: SomeType Int -> Value
89thSomeTypeToJSON2ElemArray = $(mkToJSON opts2ElemArray ''SomeType)
91thSomeTypeToEncoding2ElemArray :: SomeType Int -> Encoding
92thSomeTypeToEncoding2ElemArray = $(mkToEncoding opts2ElemArray ''SomeType)
94thSomeTypeParseJSON2ElemArray :: Value -> Parser (SomeType Int)
95thSomeTypeParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''SomeType)
98thSomeTypeToJSONTaggedObject :: SomeType Int -> Value
99thSomeTypeToJSONTaggedObject = $(mkToJSON optsTaggedObject ''SomeType)
101thSomeTypeToEncodingTaggedObject :: SomeType Int -> Encoding
102thSomeTypeToEncodingTaggedObject = $(mkToEncoding optsTaggedObject ''SomeType)
104thSomeTypeParseJSONTaggedObject :: Value -> Parser (SomeType Int)
105thSomeTypeParseJSONTaggedObject = $(mkParseJSON optsTaggedObject ''SomeType)
108thSomeTypeToJSONObjectWithSingleField :: SomeType Int -> Value
109thSomeTypeToJSONObjectWithSingleField =
110 $(mkToJSON optsObjectWithSingleField ''SomeType)
112thSomeTypeToEncodingObjectWithSingleField :: SomeType Int -> Encoding
113thSomeTypeToEncodingObjectWithSingleField =
114 $(mkToEncoding optsObjectWithSingleField ''SomeType)
116thSomeTypeParseJSONObjectWithSingleField :: Value -> Parser (SomeType Int)
117thSomeTypeParseJSONObjectWithSingleField =
118 $(mkParseJSON optsObjectWithSingleField ''SomeType)
121gSomeTypeToJSON2ElemArray :: SomeType Int -> Value
122gSomeTypeToJSON2ElemArray = genericToJSON opts2ElemArray
124gSomeTypeParseJSON2ElemArray :: Value -> Parser (SomeType Int)
125gSomeTypeParseJSON2ElemArray = genericParseJSON opts2ElemArray
128gSomeTypeToJSONTaggedObject :: SomeType Int -> Value
129gSomeTypeToJSONTaggedObject = genericToJSON optsTaggedObject
131gSomeTypeParseJSONTaggedObject :: Value -> Parser (SomeType Int)
132gSomeTypeParseJSONTaggedObject = genericParseJSON optsTaggedObject
135gSomeTypeToJSONObjectWithSingleField :: SomeType Int -> Value
136gSomeTypeToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
138gSomeTypeParseJSONObjectWithSingleField :: Value -> Parser (SomeType Int)
139gSomeTypeParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
142--------------------------------------------------------------------------------
143-- Approx encoders/decoders
144--------------------------------------------------------------------------------
146thApproxToJSONUnwrap :: Approx String -> Value
147thApproxToJSONUnwrap = $(mkToJSON optsUnwrapUnaryRecords ''Approx)
149thApproxToEncodingUnwrap :: Approx String -> Encoding
150thApproxToEncodingUnwrap = $(mkToEncoding optsUnwrapUnaryRecords ''Approx)
152thApproxParseJSONUnwrap :: Value -> Parser (Approx String)
153thApproxParseJSONUnwrap = $(mkParseJSON optsUnwrapUnaryRecords ''Approx)
156thApproxToJSONDefault :: Approx String -> Value
157thApproxToJSONDefault = $(mkToJSON defaultOptions ''Approx)
159thApproxToEncodingDefault :: Approx String -> Encoding
160thApproxToEncodingDefault = $(mkToEncoding defaultOptions ''Approx)
162thApproxParseJSONDefault :: Value -> Parser (Approx String)
163thApproxParseJSONDefault = $(mkParseJSON defaultOptions ''Approx)
165gApproxToJSONUnwrap :: Approx String -> Value
166gApproxToJSONUnwrap = genericToJSON optsUnwrapUnaryRecords
168gApproxParseJSONUnwrap :: Value -> Parser (Approx String)
169gApproxParseJSONUnwrap = genericParseJSON optsUnwrapUnaryRecords
172gApproxToJSONDefault :: Approx String -> Value
173gApproxToJSONDefault = genericToJSON defaultOptions
175gApproxParseJSONDefault :: Value -> Parser (Approx String)
176gApproxParseJSONDefault = genericParseJSON defaultOptions
178--------------------------------------------------------------------------------
179-- GADT encoders/decoders
180--------------------------------------------------------------------------------
182thGADTToJSONUnwrap :: GADT String -> Value
183thGADTToJSONUnwrap = $(mkToJSON optsUnwrapUnaryRecords ''GADT)
185thGADTToEncodingUnwrap :: GADT String -> Encoding
186thGADTToEncodingUnwrap = $(mkToEncoding optsUnwrapUnaryRecords ''GADT)
188thGADTParseJSONUnwrap :: Value -> Parser (GADT String)
189thGADTParseJSONUnwrap = $(mkParseJSON optsUnwrapUnaryRecords ''GADT)
192thGADTToJSONDefault :: GADT String -> Value
193thGADTToJSONDefault = $(mkToJSON defaultOptions ''GADT)
195thGADTToEncodingDefault :: GADT String -> Encoding
196thGADTToEncodingDefault = $(mkToEncoding defaultOptions ''GADT)
198thGADTParseJSONDefault :: Value -> Parser (GADT String)
199thGADTParseJSONDefault = $(mkParseJSON defaultOptions ''GADT)