on master help sign in
Add tests/Encoders.hs
commitc2f43bbdf407b6c2ef8e9f178769dd02df22827d authorBas van Dijk <v.dijk.bas@gmail.com> dateSun 21 Apr 2013, 23:13 (13 years ago) parentfaa1632
1 file changed+114
tests/Encoders.hs+114
tests/Encoders.hsnew file+114
@@ -0,0 +1,114 @@
1+{-# Language TemplateHaskell #-}
2+
3+module Encoders where
4+
5+import Data.Aeson.TH
6+import Data.Aeson.Types
7+import Options
8+import Types
9+
10+--------------------------------------------------------------------------------
11+-- Nullary encoders/decoders
12+--------------------------------------------------------------------------------
13+
14+thNullaryToJSONString :: Nullary -> Value
15+thNullaryToJSONString = $(mkToJSON defaultOptions ''Nullary)
16+
17+thNullaryParseJSONString :: Value -> Parser Nullary
18+thNullaryParseJSONString = $(mkParseJSON defaultOptions ''Nullary)
19+
20+
21+thNullaryToJSON2ElemArray :: Nullary -> Value
22+thNullaryToJSON2ElemArray = $(mkToJSON opts2ElemArray ''Nullary)
23+
24+thNullaryParseJSON2ElemArray :: Value -> Parser Nullary
25+thNullaryParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''Nullary)
26+
27+
28+thNullaryToJSONObjectWithType :: Nullary -> Value
29+thNullaryToJSONObjectWithType = $(mkToJSON optsObjectWithType ''Nullary)
30+
31+thNullaryParseJSONObjectWithType :: Value -> Parser Nullary
32+thNullaryParseJSONObjectWithType = $(mkParseJSON optsObjectWithType ''Nullary)
33+
34+
35+thNullaryToJSONObjectWithSingleField :: Nullary -> Value
36+thNullaryToJSONObjectWithSingleField = $(mkToJSON optsObjectWithSingleField ''Nullary)
37+
38+thNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
39+thNullaryParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField ''Nullary)
40+
41+gNullaryToJSONString :: Nullary -> Value
42+gNullaryToJSONString = genericToJSON defaultOptions
43+
44+gNullaryParseJSONString :: Value -> Parser Nullary
45+gNullaryParseJSONString = genericParseJSON defaultOptions
46+
47+
48+gNullaryToJSON2ElemArray :: Nullary -> Value
49+gNullaryToJSON2ElemArray = genericToJSON opts2ElemArray
50+
51+gNullaryParseJSON2ElemArray :: Value -> Parser Nullary
52+gNullaryParseJSON2ElemArray = genericParseJSON opts2ElemArray
53+
54+
55+gNullaryToJSONObjectWithType :: Nullary -> Value
56+gNullaryToJSONObjectWithType = genericToJSON optsObjectWithType
57+
58+gNullaryParseJSONObjectWithType :: Value -> Parser Nullary
59+gNullaryParseJSONObjectWithType = genericParseJSON optsObjectWithType
60+
61+
62+gNullaryToJSONObjectWithSingleField :: Nullary -> Value
63+gNullaryToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
64+
65+gNullaryParseJSONObjectWithSingleField :: Value -> Parser Nullary
66+gNullaryParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField
67+
68+
69+--------------------------------------------------------------------------------
70+-- SomeType encoders/decoders
71+--------------------------------------------------------------------------------
72+
73+type SomeTypeToJSON = SomeType Int -> Value
74+
75+thSomeTypeToJSON2ElemArray :: ToJSON a => SomeType a -> Value
76+thSomeTypeToJSON2ElemArray = $(mkToJSON opts2ElemArray ''SomeType)
77+
78+thSomeTypeParseJSON2ElemArray :: FromJSON a => Value -> Parser (SomeType a)
79+thSomeTypeParseJSON2ElemArray = $(mkParseJSON opts2ElemArray ''SomeType)
80+
81+
82+thSomeTypeToJSONObjectWithType :: ToJSON a => SomeType a -> Value
83+thSomeTypeToJSONObjectWithType = $(mkToJSON optsObjectWithType ''SomeType)
84+
85+thSomeTypeParseJSONObjectWithType :: FromJSON a => Value -> Parser (SomeType a)
86+thSomeTypeParseJSONObjectWithType = $(mkParseJSON optsObjectWithType ''SomeType)
87+
88+
89+thSomeTypeToJSONObjectWithSingleField :: ToJSON a => SomeType a -> Value
90+thSomeTypeToJSONObjectWithSingleField = $(mkToJSON optsObjectWithSingleField ''SomeType)
91+
92+thSomeTypeParseJSONObjectWithSingleField :: FromJSON a => Value -> Parser (SomeType a)
93+thSomeTypeParseJSONObjectWithSingleField = $(mkParseJSON optsObjectWithSingleField ''SomeType)
94+
95+
96+gSomeTypeToJSON2ElemArray :: ToJSON a => SomeType a -> Value
97+gSomeTypeToJSON2ElemArray = genericToJSON opts2ElemArray
98+
99+gSomeTypeParseJSON2ElemArray :: FromJSON a => Value -> Parser (SomeType a)
100+gSomeTypeParseJSON2ElemArray = genericParseJSON opts2ElemArray
101+
102+
103+gSomeTypeToJSONObjectWithType :: ToJSON a => SomeType a -> Value
104+gSomeTypeToJSONObjectWithType = genericToJSON optsObjectWithType
105+
106+gSomeTypeParseJSONObjectWithType :: FromJSON a => Value -> Parser (SomeType a)
107+gSomeTypeParseJSONObjectWithType = genericParseJSON optsObjectWithType
108+
109+
110+gSomeTypeToJSONObjectWithSingleField :: ToJSON a => SomeType a -> Value
111+gSomeTypeToJSONObjectWithSingleField = genericToJSON optsObjectWithSingleField
112+
113+gSomeTypeParseJSONObjectWithSingleField :: FromJSON a => Value -> Parser (SomeType a)
114+gSomeTypeParseJSONObjectWithSingleField = genericParseJSON optsObjectWithSingleField