@@ -0,0 +1,114 @@
1+{-# Language TemplateHaskell #-}
6+import Data.Aeson.Types
10+--------------------------------------------------------------------------------
11+-- Nullary encoders/decoders
12+--------------------------------------------------------------------------------
14+thNullaryToJSONString :: Nullary -> Value
15+thNullaryToJSONString = $(mkToJSON defaultOptions ''Nullary)
17+thNullaryParseJSONString :: Value -> Parser Nullary
18+thNullaryParseJSONString = $(mkParseJSON defaultOptions ''Nullary)
21+thNullaryToJSON2ElemArray :: Nullary -> Value
22+thNullaryToJSON2ElemArray = $(mkToJSON opts2ElemArray ''Nullary)
24+thNullaryParseJSON2ElemArray :: Value -> Parser Nullary
25+thNullaryParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''Nullary)
28+thNullaryToJSONObjectWithType :: Nullary -> Value
29+thNullaryToJSONObjectWithType = $(mkToJSON optsObjectWithType ''Nullary)
31+thNullaryParseJSONObjectWithType :: Value -> Parser Nullary
32+thNullaryParseJSONObjectWithType = $(mkParseJSON optsObjectWithType ''Nullary)
35+thNullaryToJSONObjectWithSingleField :: Nullary -> Value
36+thNullaryToJSONObjectWithSingleField = $(mkToJSON optsObjectWithSingleField ''Nullary)
38+thNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
39+thNullaryParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField ''Nullary)
41+gNullaryToJSONString :: Nullary -> Value
42+gNullaryToJSONString = genericToJSON defaultOptions
44+gNullaryParseJSONString :: Value -> Parser Nullary
45+gNullaryParseJSONString = genericParseJSON defaultOptions
48+gNullaryToJSON2ElemArray :: Nullary -> Value
49+gNullaryToJSON2ElemArray = genericToJSON opts2ElemArray
51+gNullaryParseJSON2ElemArray :: Value -> Parser Nullary
52+gNullaryParseJSON2ElemArray = genericParseJSON opts2ElemArray
55+gNullaryToJSONObjectWithType :: Nullary -> Value
56+gNullaryToJSONObjectWithType = genericToJSON optsObjectWithType
58+gNullaryParseJSONObjectWithType :: Value -> Parser Nullary
59+gNullaryParseJSONObjectWithType = genericParseJSON optsObjectWithType
62+gNullaryToJSONObjectWithSingleField :: Nullary -> Value
63+gNullaryToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
65+gNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
66+gNullaryParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
69+--------------------------------------------------------------------------------
70+-- SomeType encoders/decoders
71+--------------------------------------------------------------------------------
73+type SomeTypeToJSON = SomeType Int -> Value
75+thSomeTypeToJSON2ElemArray :: ToJSON a => SomeType a -> Value
76+thSomeTypeToJSON2ElemArray = $(mkToJSON opts2ElemArray ''SomeType)
78+thSomeTypeParseJSON2ElemArray :: FromJSON a => Value -> Parser (SomeType a)
79+thSomeTypeParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''SomeType)
82+thSomeTypeToJSONObjectWithType :: ToJSON a => SomeType a -> Value
83+thSomeTypeToJSONObjectWithType = $(mkToJSON optsObjectWithType ''SomeType)
85+thSomeTypeParseJSONObjectWithType :: FromJSON a => Value -> Parser (SomeType a)
86+thSomeTypeParseJSONObjectWithType = $(mkParseJSON optsObjectWithType ''SomeType)
89+thSomeTypeToJSONObjectWithSingleField :: ToJSON a => SomeType a -> Value
90+thSomeTypeToJSONObjectWithSingleField = $(mkToJSON optsObjectWithSingleField ''SomeType)
92+thSomeTypeParseJSONObjectWithSingleField :: FromJSON a => Value -> Parser (SomeType a)
93+thSomeTypeParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField ''SomeType)
96+gSomeTypeToJSON2ElemArray :: ToJSON a => SomeType a -> Value
97+gSomeTypeToJSON2ElemArray = genericToJSON opts2ElemArray
99+gSomeTypeParseJSON2ElemArray :: FromJSON a => Value -> Parser (SomeType a)
100+gSomeTypeParseJSON2ElemArray = genericParseJSON opts2ElemArray
103+gSomeTypeToJSONObjectWithType :: ToJSON a => SomeType a -> Value
104+gSomeTypeToJSONObjectWithType = genericToJSON optsObjectWithType
106+gSomeTypeParseJSONObjectWithType :: FromJSON a => Value -> Parser (SomeType a)
107+gSomeTypeParseJSONObjectWithType = genericParseJSON optsObjectWithType
110+gSomeTypeToJSONObjectWithSingleField :: ToJSON a => SomeType a -> Value
111+gSomeTypeToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
113+gSomeTypeParseJSONObjectWithSingleField :: FromJSON a => Value -> Parser (SomeType a)
114+gSomeTypeParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField