on 0.10.0.0 help sign in
typeable/aeson/tests/Encoders.hs
175 lines 6.5 kB history raw
1{-# Language TemplateHaskell #-}
3module Encoders where
5import Data.Aeson.TH
6import Data.Aeson.Types
7import Options
8import Types
10--------------------------------------------------------------------------------
11-- Nullary encoders/decoders
12--------------------------------------------------------------------------------
14thNullaryToJSONString :: Nullary -> Value
15thNullaryToJSONString = $(mkToJSON defaultOptions ''Nullary)
17thNullaryToEncodingString :: Nullary -> Encoding
18thNullaryToEncodingString = $(mkToEncoding defaultOptions ''Nullary)
20thNullaryParseJSONString :: Value -> Parser Nullary
21thNullaryParseJSONString = $(mkParseJSON defaultOptions ''Nullary)
24thNullaryToJSON2ElemArray :: Nullary -> Value
25thNullaryToJSON2ElemArray = $(mkToJSON opts2ElemArray ''Nullary)
27thNullaryToEncoding2ElemArray :: Nullary -> Encoding
28thNullaryToEncoding2ElemArray = $(mkToEncoding opts2ElemArray ''Nullary)
30thNullaryParseJSON2ElemArray :: Value -> Parser Nullary
31thNullaryParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''Nullary)
34thNullaryToJSONTaggedObject :: Nullary -> Value
35thNullaryToJSONTaggedObject = $(mkToJSON optsTaggedObject ''Nullary)
37thNullaryToEncodingTaggedObject :: Nullary -> Encoding
38thNullaryToEncodingTaggedObject = $(mkToEncoding optsTaggedObject ''Nullary)
40thNullaryParseJSONTaggedObject :: Value -> Parser Nullary
41thNullaryParseJSONTaggedObject = $(mkParseJSON optsTaggedObject ''Nullary)
44thNullaryToJSONObjectWithSingleField :: Nullary -> Value
45thNullaryToJSONObjectWithSingleField =
46 $(mkToJSON optsObjectWithSingleField ''Nullary)
48thNullaryToEncodingObjectWithSingleField :: Nullary -> Encoding
49thNullaryToEncodingObjectWithSingleField =
50 $(mkToEncoding optsObjectWithSingleField ''Nullary)
52thNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
53thNullaryParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField ''Nullary)
55gNullaryToJSONString :: Nullary -> Value
56gNullaryToJSONString = genericToJSON defaultOptions
58gNullaryParseJSONString :: Value -> Parser Nullary
59gNullaryParseJSONString = genericParseJSON defaultOptions
62gNullaryToJSON2ElemArray :: Nullary -> Value
63gNullaryToJSON2ElemArray = genericToJSON opts2ElemArray
65gNullaryParseJSON2ElemArray :: Value -> Parser Nullary
66gNullaryParseJSON2ElemArray = genericParseJSON opts2ElemArray
69gNullaryToJSONTaggedObject :: Nullary -> Value
70gNullaryToJSONTaggedObject = genericToJSON optsTaggedObject
72gNullaryParseJSONTaggedObject :: Value -> Parser Nullary
73gNullaryParseJSONTaggedObject = genericParseJSON optsTaggedObject
76gNullaryToJSONObjectWithSingleField :: Nullary -> Value
77gNullaryToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
79gNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
80gNullaryParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
83--------------------------------------------------------------------------------
84-- SomeType encoders/decoders
85--------------------------------------------------------------------------------
87thSomeTypeToJSON2ElemArray :: SomeType Int -> Value
88thSomeTypeToJSON2ElemArray = $(mkToJSON opts2ElemArray ''SomeType)
90thSomeTypeToEncoding2ElemArray :: SomeType Int -> Encoding
91thSomeTypeToEncoding2ElemArray = $(mkToEncoding opts2ElemArray ''SomeType)
93thSomeTypeParseJSON2ElemArray :: Value -> Parser (SomeType Int)
94thSomeTypeParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''SomeType)
97thSomeTypeToJSONTaggedObject :: SomeType Int -> Value
98thSomeTypeToJSONTaggedObject = $(mkToJSON optsTaggedObject ''SomeType)
100thSomeTypeToEncodingTaggedObject :: SomeType Int -> Encoding
101thSomeTypeToEncodingTaggedObject = $(mkToEncoding optsTaggedObject ''SomeType)
103thSomeTypeParseJSONTaggedObject :: Value -> Parser (SomeType Int)
104thSomeTypeParseJSONTaggedObject = $(mkParseJSON optsTaggedObject ''SomeType)
107thSomeTypeToJSONObjectWithSingleField :: SomeType Int -> Value
108thSomeTypeToJSONObjectWithSingleField =
109 $(mkToJSON optsObjectWithSingleField ''SomeType)
111thSomeTypeToEncodingObjectWithSingleField :: SomeType Int -> Encoding
112thSomeTypeToEncodingObjectWithSingleField =
113 $(mkToEncoding optsObjectWithSingleField ''SomeType)
115thSomeTypeParseJSONObjectWithSingleField :: Value -> Parser (SomeType Int)
116thSomeTypeParseJSONObjectWithSingleField =
117 $(mkParseJSON optsObjectWithSingleField ''SomeType)
120gSomeTypeToJSON2ElemArray :: SomeType Int -> Value
121gSomeTypeToJSON2ElemArray = genericToJSON opts2ElemArray
123gSomeTypeParseJSON2ElemArray :: Value -> Parser (SomeType Int)
124gSomeTypeParseJSON2ElemArray = genericParseJSON opts2ElemArray
127gSomeTypeToJSONTaggedObject :: SomeType Int -> Value
128gSomeTypeToJSONTaggedObject = genericToJSON optsTaggedObject
130gSomeTypeParseJSONTaggedObject :: Value -> Parser (SomeType Int)
131gSomeTypeParseJSONTaggedObject = genericParseJSON optsTaggedObject
134gSomeTypeToJSONObjectWithSingleField :: SomeType Int -> Value
135gSomeTypeToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
137gSomeTypeParseJSONObjectWithSingleField :: Value -> Parser (SomeType Int)
138gSomeTypeParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
141--------------------------------------------------------------------------------
142-- Approx encoders/decoders
143--------------------------------------------------------------------------------
145thApproxToJSONUnwrap :: Approx String -> Value
146thApproxToJSONUnwrap = $(mkToJSON optsUnwrapUnaryRecords ''Approx)
148thApproxToEncodingUnwrap :: Approx String -> Encoding
149thApproxToEncodingUnwrap = $(mkToEncoding optsUnwrapUnaryRecords ''Approx)
151thApproxParseJSONUnwrap :: Value -> Parser (Approx String)
152thApproxParseJSONUnwrap = $(mkParseJSON optsUnwrapUnaryRecords ''Approx)
155thApproxToJSONDefault :: Approx String -> Value
156thApproxToJSONDefault = $(mkToJSON defaultOptions ''Approx)
158thApproxToEncodingDefault :: Approx String -> Encoding
159thApproxToEncodingDefault = $(mkToEncoding defaultOptions ''Approx)
161thApproxParseJSONDefault :: Value -> Parser (Approx String)
162thApproxParseJSONDefault = $(mkParseJSON defaultOptions ''Approx)
164gApproxToJSONUnwrap :: Approx String -> Value
165gApproxToJSONUnwrap = genericToJSON optsUnwrapUnaryRecords
167gApproxParseJSONUnwrap :: Value -> Parser (Approx String)
168gApproxParseJSONUnwrap = genericParseJSON optsUnwrapUnaryRecords
171gApproxToJSONDefault :: Approx String -> Value
172gApproxToJSONDefault = genericToJSON defaultOptions
174gApproxParseJSONDefault :: Value -> Parser (Approx String)
175gApproxParseJSONDefault = genericParseJSON defaultOptions