@greenlabs/ppx-spice 0.1.8-rc1 → 0.1.9-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +6 -2
  2. package/README.md +4 -0
  3. package/docs/GUIDE.md +139 -0
  4. package/package.json +1 -1
  5. package/ppx-windows.exe +0 -0
  6. package/.github/workflows/build_linux.yml +0 -41
  7. package/.github/workflows/build_macos.yml +0 -41
  8. package/.github/workflows/build_windows.yml +0 -41
  9. package/.github/workflows/print_esy_cache.js +0 -13
  10. package/.github/workflows/publish.yml +0 -161
  11. package/.github/workflows/publish_prerelease.yml +0 -177
  12. package/.vscode/settings.json +0 -6
  13. package/src/.ocamlformat +0 -0
  14. package/src/bin/bin.ml +0 -1
  15. package/src/bin/dune +0 -5
  16. package/src/dune +0 -1
  17. package/src/dune-project +0 -2
  18. package/src/dune-workspace +0 -3
  19. package/src/esy.lock/.gitattributes +0 -3
  20. package/src/esy.lock/.gitignore +0 -3
  21. package/src/esy.lock/index.json +0 -1196
  22. package/src/esy.lock/opam/astring.0.8.5/opam +0 -37
  23. package/src/esy.lock/opam/base-bytes.base/opam +0 -9
  24. package/src/esy.lock/opam/base-threads.base/opam +0 -6
  25. package/src/esy.lock/opam/base-unix.base/opam +0 -6
  26. package/src/esy.lock/opam/base.v0.14.1/opam +0 -36
  27. package/src/esy.lock/opam/biniou.1.2.1/opam +0 -45
  28. package/src/esy.lock/opam/cmdliner.1.0.4/opam +0 -36
  29. package/src/esy.lock/opam/cppo.1.6.8/opam +0 -37
  30. package/src/esy.lock/opam/csexp.1.5.1/opam +0 -60
  31. package/src/esy.lock/opam/dot-merlin-reader.4.1/opam +0 -30
  32. package/src/esy.lock/opam/dune-build-info.2.9.1/opam +0 -42
  33. package/src/esy.lock/opam/dune-configurator.2.9.1/opam +0 -47
  34. package/src/esy.lock/opam/dune.2.9.1/opam +0 -58
  35. package/src/esy.lock/opam/easy-format.1.3.2/opam +0 -46
  36. package/src/esy.lock/opam/fix.20201120/opam +0 -24
  37. package/src/esy.lock/opam/fpath.0.7.3/opam +0 -36
  38. package/src/esy.lock/opam/menhir.20211012/opam +0 -28
  39. package/src/esy.lock/opam/menhirLib.20211012/opam +0 -29
  40. package/src/esy.lock/opam/menhirSdk.20211012/opam +0 -29
  41. package/src/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam +0 -39
  42. package/src/esy.lock/opam/ocaml-lsp-server.1.8.3/opam +0 -54
  43. package/src/esy.lock/opam/ocamlbuild.0.14.0/opam +0 -36
  44. package/src/esy.lock/opam/ocamlfind.1.9.1/opam +0 -44
  45. package/src/esy.lock/opam/ocamlformat-rpc-lib.0.18.0/opam +0 -40
  46. package/src/esy.lock/opam/ocamlformat.0.19.0/opam +0 -55
  47. package/src/esy.lock/opam/ocp-indent.1.8.1/opam +0 -57
  48. package/src/esy.lock/opam/odoc-parser.0.9.0/opam +0 -45
  49. package/src/esy.lock/opam/pp.1.1.2/opam +0 -58
  50. package/src/esy.lock/opam/ppx_derivers.1.2.1/opam +0 -23
  51. package/src/esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam +0 -24
  52. package/src/esy.lock/opam/ppxlib.0.23.0/opam +0 -62
  53. package/src/esy.lock/opam/re.1.10.3/opam +0 -46
  54. package/src/esy.lock/opam/result.1.5/opam +0 -22
  55. package/src/esy.lock/opam/seq.base/files/META.seq +0 -4
  56. package/src/esy.lock/opam/seq.base/files/seq.install +0 -3
  57. package/src/esy.lock/opam/seq.base/opam +0 -15
  58. package/src/esy.lock/opam/sexplib0.v0.14.0/opam +0 -26
  59. package/src/esy.lock/opam/stdio.v0.14.0/opam +0 -27
  60. package/src/esy.lock/opam/stdlib-shims.0.3.0/opam +0 -31
  61. package/src/esy.lock/opam/topkg.1.0.4/opam +0 -44
  62. package/src/esy.lock/opam/uchar.0.0.2/opam +0 -36
  63. package/src/esy.lock/opam/uucp.14.0.0/opam +0 -41
  64. package/src/esy.lock/opam/uuseg.14.0.0/opam +0 -43
  65. package/src/esy.lock/opam/uutf.1.0.2/opam +0 -40
  66. package/src/esy.lock/opam/yojson.1.7.0/opam +0 -38
  67. package/src/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +0 -463
  68. package/src/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json +0 -27
  69. package/src/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.1_opam_override/files/findlib-1.9.1.patch +0 -471
  70. package/src/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.1_opam_override/package.json +0 -61
  71. package/src/ppx/codecs.ml +0 -120
  72. package/src/ppx/decode_cases.ml +0 -18
  73. package/src/ppx/dune +0 -9
  74. package/src/ppx/polyvariants.ml +0 -288
  75. package/src/ppx/ppx_spice.ml +0 -19
  76. package/src/ppx/records.ml +0 -163
  77. package/src/ppx/signature.ml +0 -86
  78. package/src/ppx/structure.ml +0 -109
  79. package/src/ppx/tuple.ml +0 -68
  80. package/src/ppx/utils.ml +0 -117
  81. package/src/ppx/variants.ml +0 -257
  82. package/src/ppx_spice.opam +0 -21
  83. package/test/__tests__/test_optional_field_records.js +0 -91
  84. package/test/__tests__/test_optional_field_records.res +0 -98
  85. package/test/__tests__/test_polyvariants.js +0 -57
  86. package/test/__tests__/test_polyvariants.res +0 -41
  87. package/test/__tests__/test_records.js +0 -100
  88. package/test/__tests__/test_records.res +0 -111
  89. package/test/__tests__/test_variants.js +0 -85
  90. package/test/__tests__/test_variants.res +0 -63
  91. package/test/bsconfig.json +0 -27
  92. package/test/package.json +0 -18
  93. package/test/src/OptionalFieldRecords.js +0 -237
  94. package/test/src/OptionalFieldRecords.res +0 -23
  95. package/test/src/Polyvariants.js +0 -94
  96. package/test/src/Polyvariants.res +0 -5
  97. package/test/src/Polyvariants.resi +0 -5
  98. package/test/src/Records.js +0 -186
  99. package/test/src/Records.res +0 -17
  100. package/test/src/Records.resi +0 -17
  101. package/test/src/Spice.js +0 -448
  102. package/test/src/Spice_Codecs.js +0 -57
  103. package/test/src/Variants.js +0 -115
  104. package/test/src/Variants.res +0 -11
  105. package/test/src/Variants.resi +0 -11
  106. package/test/yarn.lock +0 -4194
package/test/src/Spice.js DELETED
@@ -1,448 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
- 'use strict';
3
-
4
- var $$Array = require("rescript/lib/js/array.js");
5
- var Curry = require("rescript/lib/js/curry.js");
6
- var Js_dict = require("rescript/lib/js/js_dict.js");
7
- var Js_json = require("rescript/lib/js/js_json.js");
8
- var Js_math = require("rescript/lib/js/js_math.js");
9
- var Caml_obj = require("rescript/lib/js/caml_obj.js");
10
- var Js_array = require("rescript/lib/js/js_array.js");
11
- var Belt_Array = require("rescript/lib/js/belt_Array.js");
12
- var Caml_int64 = require("rescript/lib/js/caml_int64.js");
13
- var Belt_Result = require("rescript/lib/js/belt_Result.js");
14
- var Caml_option = require("rescript/lib/js/caml_option.js");
15
- var Spice_Codecs = require("./Spice_Codecs.js");
16
-
17
- function error(path, message, value) {
18
- var path$1 = path !== undefined ? path : "";
19
- return {
20
- TAG: /* Error */1,
21
- _0: {
22
- path: path$1,
23
- message: message,
24
- value: value
25
- }
26
- };
27
- }
28
-
29
- function stringToJson(s) {
30
- return s;
31
- }
32
-
33
- function stringFromJson(j) {
34
- var s = Js_json.decodeString(j);
35
- if (s !== undefined) {
36
- return {
37
- TAG: /* Ok */0,
38
- _0: s
39
- };
40
- } else {
41
- return {
42
- TAG: /* Error */1,
43
- _0: {
44
- path: "",
45
- message: "Not a string",
46
- value: j
47
- }
48
- };
49
- }
50
- }
51
-
52
- function intToJson(i) {
53
- return i;
54
- }
55
-
56
- function intFromJson(j) {
57
- var f = Js_json.decodeNumber(j);
58
- if (f !== undefined) {
59
- if (Js_math.floor(f) === f) {
60
- return {
61
- TAG: /* Ok */0,
62
- _0: Js_math.floor(f)
63
- };
64
- } else {
65
- return {
66
- TAG: /* Error */1,
67
- _0: {
68
- path: "",
69
- message: "Not an integer",
70
- value: j
71
- }
72
- };
73
- }
74
- } else {
75
- return {
76
- TAG: /* Error */1,
77
- _0: {
78
- path: "",
79
- message: "Not a number",
80
- value: j
81
- }
82
- };
83
- }
84
- }
85
-
86
- var int64ToJson = Caml_int64.float_of_bits;
87
-
88
- function int64FromJson(j) {
89
- var n = Js_json.decodeNumber(j);
90
- if (n !== undefined) {
91
- return {
92
- TAG: /* Ok */0,
93
- _0: Caml_int64.bits_of_float(n)
94
- };
95
- } else {
96
- return error(undefined, "Not a number", j);
97
- }
98
- }
99
-
100
- var int64ToJsonUnsafe = Caml_int64.to_float;
101
-
102
- function int64FromJsonUnsafe(j) {
103
- var n = Js_json.decodeNumber(j);
104
- if (n !== undefined) {
105
- return {
106
- TAG: /* Ok */0,
107
- _0: Caml_int64.of_float(n)
108
- };
109
- } else {
110
- return error(undefined, "Not a number", j);
111
- }
112
- }
113
-
114
- function floatToJson(v) {
115
- return v;
116
- }
117
-
118
- function floatFromJson(j) {
119
- var f = Js_json.decodeNumber(j);
120
- if (f !== undefined) {
121
- return {
122
- TAG: /* Ok */0,
123
- _0: f
124
- };
125
- } else {
126
- return {
127
- TAG: /* Error */1,
128
- _0: {
129
- path: "",
130
- message: "Not a number",
131
- value: j
132
- }
133
- };
134
- }
135
- }
136
-
137
- function boolToJson(v) {
138
- return v;
139
- }
140
-
141
- function boolFromJson(j) {
142
- var b = Js_json.decodeBoolean(j);
143
- if (b !== undefined) {
144
- return {
145
- TAG: /* Ok */0,
146
- _0: b
147
- };
148
- } else {
149
- return {
150
- TAG: /* Error */1,
151
- _0: {
152
- path: "",
153
- message: "Not a boolean",
154
- value: j
155
- }
156
- };
157
- }
158
- }
159
-
160
- function unitToJson(param) {
161
- return 0.0;
162
- }
163
-
164
- function unitFromJson(param) {
165
- return {
166
- TAG: /* Ok */0,
167
- _0: undefined
168
- };
169
- }
170
-
171
- var arrayToJson = Js_array.map;
172
-
173
- function arrayFromJson(decoder, json) {
174
- var arr = Js_json.decodeArray(json);
175
- if (arr !== undefined) {
176
- return Js_array.reducei((function (acc, jsonI, i) {
177
- var match = Curry._1(decoder, jsonI);
178
- if (acc.TAG !== /* Ok */0) {
179
- return acc;
180
- }
181
- if (match.TAG === /* Ok */0) {
182
- return {
183
- TAG: /* Ok */0,
184
- _0: Js_array.concat([match._0], acc._0)
185
- };
186
- }
187
- var error = match._0;
188
- return {
189
- TAG: /* Error */1,
190
- _0: {
191
- path: "[" + (String(i) + ("]" + error.path)),
192
- message: error.message,
193
- value: error.value
194
- }
195
- };
196
- }), {
197
- TAG: /* Ok */0,
198
- _0: []
199
- }, arr);
200
- } else {
201
- return {
202
- TAG: /* Error */1,
203
- _0: {
204
- path: "",
205
- message: "Not an array",
206
- value: json
207
- }
208
- };
209
- }
210
- }
211
-
212
- function listToJson(encoder, list) {
213
- var arr = $$Array.of_list(list);
214
- return Js_array.map(encoder, arr);
215
- }
216
-
217
- function listFromJson(decoder, json) {
218
- var __x = arrayFromJson(decoder, json);
219
- return Belt_Result.map(__x, $$Array.to_list);
220
- }
221
-
222
- function optionToJson(encoder, opt) {
223
- if (opt !== undefined) {
224
- return Curry._1(encoder, Caml_option.valFromOption(opt));
225
- } else {
226
- return null;
227
- }
228
- }
229
-
230
- function filterOptional(arr) {
231
- var __x = Belt_Array.keep(arr, (function (param) {
232
- return !(param[1] && Caml_obj.equal(param[2], null));
233
- }));
234
- return Belt_Array.map(__x, (function (param) {
235
- return [
236
- param[0],
237
- param[2]
238
- ];
239
- }));
240
- }
241
-
242
- function optionFromJson(decoder, json) {
243
- var match = Js_json.decodeNull(json);
244
- if (match !== undefined) {
245
- return {
246
- TAG: /* Ok */0,
247
- _0: undefined
248
- };
249
- }
250
- var __x = Curry._1(decoder, json);
251
- return Belt_Result.map(__x, (function (v) {
252
- return Caml_option.some(v);
253
- }));
254
- }
255
-
256
- function resultToJson(okEncoder, errorEncoder, result) {
257
- if (result.TAG === /* Ok */0) {
258
- return [
259
- "Ok",
260
- Curry._1(okEncoder, result._0)
261
- ];
262
- } else {
263
- return [
264
- "Error",
265
- Curry._1(errorEncoder, result._0)
266
- ];
267
- }
268
- }
269
-
270
- function resultFromJson(okDecoder, errorDecoder, json) {
271
- var match = Js_json.decodeArray(json);
272
- if (match === undefined) {
273
- return error(undefined, "Not an array", json);
274
- }
275
- if (match.length !== 2) {
276
- return error(undefined, "Expected exactly 2 values in array", json);
277
- }
278
- var variantConstructorId = match[0];
279
- var payload = match[1];
280
- var match$1 = Js_json.decodeString(variantConstructorId);
281
- if (match$1 === undefined) {
282
- return error(undefined, "Not a string", variantConstructorId);
283
- }
284
- switch (match$1) {
285
- case "Error" :
286
- var v = Curry._1(errorDecoder, payload);
287
- if (v.TAG === /* Ok */0) {
288
- return {
289
- TAG: /* Ok */0,
290
- _0: {
291
- TAG: /* Error */1,
292
- _0: v._0
293
- }
294
- };
295
- } else {
296
- return {
297
- TAG: /* Error */1,
298
- _0: v._0
299
- };
300
- }
301
- case "Ok" :
302
- return Belt_Result.map(Curry._1(okDecoder, payload), (function (v) {
303
- return {
304
- TAG: /* Ok */0,
305
- _0: v
306
- };
307
- }));
308
- default:
309
- return error(undefined, "Expected either \"Ok\" or \"Error\"", variantConstructorId);
310
- }
311
- }
312
-
313
- function dictToJson(encoder, dict) {
314
- return Js_dict.map(Curry.__1(encoder), dict);
315
- }
316
-
317
- function dictFromJson(decoder, json) {
318
- var dict = Js_json.decodeObject(json);
319
- if (dict !== undefined) {
320
- return Belt_Array.reduce(Js_dict.entries(Caml_option.valFromOption(dict)), {
321
- TAG: /* Ok */0,
322
- _0: {}
323
- }, (function (acc, param) {
324
- var key = param[0];
325
- var match = Curry._1(decoder, param[1]);
326
- if (acc.TAG !== /* Ok */0) {
327
- return acc;
328
- }
329
- var prev = acc._0;
330
- if (match.TAG === /* Ok */0) {
331
- prev[key] = match._0;
332
- return {
333
- TAG: /* Ok */0,
334
- _0: prev
335
- };
336
- }
337
- var error = match._0;
338
- return {
339
- TAG: /* Error */1,
340
- _0: {
341
- path: "." + (key + error.path),
342
- message: error.message,
343
- value: error.value
344
- }
345
- };
346
- }));
347
- } else {
348
- return {
349
- TAG: /* Error */1,
350
- _0: {
351
- path: "",
352
- message: "Not a dict",
353
- value: json
354
- }
355
- };
356
- }
357
- }
358
-
359
- var string = [
360
- stringToJson,
361
- stringFromJson
362
- ];
363
-
364
- var $$int = [
365
- intToJson,
366
- intFromJson
367
- ];
368
-
369
- var int64Unsafe = [
370
- int64ToJsonUnsafe,
371
- int64FromJsonUnsafe
372
- ];
373
-
374
- var $$float = [
375
- floatToJson,
376
- floatFromJson
377
- ];
378
-
379
- var bool = [
380
- boolToJson,
381
- boolFromJson
382
- ];
383
-
384
- var array = [
385
- arrayToJson,
386
- arrayFromJson
387
- ];
388
-
389
- var list = [
390
- listToJson,
391
- listFromJson
392
- ];
393
-
394
- var option = [
395
- optionToJson,
396
- optionFromJson
397
- ];
398
-
399
- var unit = [
400
- unitToJson,
401
- unitFromJson
402
- ];
403
-
404
- var Codecs = {
405
- falseableEncode: Spice_Codecs.falseableEncode,
406
- falseableDecode: Spice_Codecs.falseableDecode,
407
- falseable: Spice_Codecs.falseable,
408
- magicDecode: Spice_Codecs.magicDecode,
409
- magic: Spice_Codecs.magic,
410
- string: string,
411
- $$int: $$int,
412
- int64Unsafe: int64Unsafe,
413
- $$float: $$float,
414
- bool: bool,
415
- array: array,
416
- list: list,
417
- option: option,
418
- unit: unit
419
- };
420
-
421
- exports.error = error;
422
- exports.stringToJson = stringToJson;
423
- exports.stringFromJson = stringFromJson;
424
- exports.intToJson = intToJson;
425
- exports.intFromJson = intFromJson;
426
- exports.int64ToJson = int64ToJson;
427
- exports.int64FromJson = int64FromJson;
428
- exports.int64ToJsonUnsafe = int64ToJsonUnsafe;
429
- exports.int64FromJsonUnsafe = int64FromJsonUnsafe;
430
- exports.floatToJson = floatToJson;
431
- exports.floatFromJson = floatFromJson;
432
- exports.boolToJson = boolToJson;
433
- exports.boolFromJson = boolFromJson;
434
- exports.unitToJson = unitToJson;
435
- exports.unitFromJson = unitFromJson;
436
- exports.arrayToJson = arrayToJson;
437
- exports.arrayFromJson = arrayFromJson;
438
- exports.listToJson = listToJson;
439
- exports.listFromJson = listFromJson;
440
- exports.optionToJson = optionToJson;
441
- exports.filterOptional = filterOptional;
442
- exports.optionFromJson = optionFromJson;
443
- exports.resultToJson = resultToJson;
444
- exports.resultFromJson = resultFromJson;
445
- exports.dictToJson = dictToJson;
446
- exports.dictFromJson = dictFromJson;
447
- exports.Codecs = Codecs;
448
- /* No side effect */
@@ -1,57 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
- 'use strict';
3
-
4
- var Curry = require("rescript/lib/js/curry.js");
5
- var Js_json = require("rescript/lib/js/js_json.js");
6
- var Belt_Result = require("rescript/lib/js/belt_Result.js");
7
- var Caml_option = require("rescript/lib/js/caml_option.js");
8
-
9
- function falseableEncode(encoder, opt) {
10
- if (opt !== undefined) {
11
- return Curry._1(encoder, Caml_option.valFromOption(opt));
12
- } else {
13
- return false;
14
- }
15
- }
16
-
17
- function falseableDecode(decoder, json) {
18
- var match = Js_json.decodeBoolean(json);
19
- if (match !== undefined && !match) {
20
- return {
21
- TAG: /* Ok */0,
22
- _0: undefined
23
- };
24
- }
25
- var __x = Curry._1(decoder, json);
26
- return Belt_Result.map(__x, (function (v) {
27
- return Caml_option.some(v);
28
- }));
29
- }
30
-
31
- var falseable = [
32
- falseableEncode,
33
- falseableDecode
34
- ];
35
-
36
- function magicDecode(j) {
37
- return {
38
- TAG: /* Ok */0,
39
- _0: j
40
- };
41
- }
42
-
43
- function magic_0(prim) {
44
- return prim;
45
- }
46
-
47
- var magic = [
48
- magic_0,
49
- magicDecode
50
- ];
51
-
52
- exports.falseableEncode = falseableEncode;
53
- exports.falseableDecode = falseableDecode;
54
- exports.falseable = falseable;
55
- exports.magicDecode = magicDecode;
56
- exports.magic = magic;
57
- /* No side effect */
@@ -1,115 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
- 'use strict';
3
-
4
- var Spice = require("./Spice.js");
5
- var Js_json = require("rescript/lib/js/js_json.js");
6
- var Js_array = require("rescript/lib/js/js_array.js");
7
- var Belt_Array = require("rescript/lib/js/belt_Array.js");
8
- var Belt_Result = require("rescript/lib/js/belt_Result.js");
9
-
10
- function t_encode(v) {
11
- if (v) {
12
- return "둘";
13
- } else {
14
- return "하나";
15
- }
16
- }
17
-
18
- function t_decode(v) {
19
- var str = Js_json.classify(v);
20
- if (typeof str === "number") {
21
- return Spice.error(undefined, "Not a JSONString", v);
22
- }
23
- if (str.TAG !== /* JSONString */0) {
24
- return Spice.error(undefined, "Not a JSONString", v);
25
- }
26
- var str$1 = str._0;
27
- if ("하나" === str$1) {
28
- return {
29
- TAG: /* Ok */0,
30
- _0: /* One */0
31
- };
32
- } else if ("둘" === str$1) {
33
- return {
34
- TAG: /* Ok */0,
35
- _0: /* Two */1
36
- };
37
- } else {
38
- return Spice.error(undefined, "Not matched", v);
39
- }
40
- }
41
-
42
- function t1_encode(v) {
43
- if (v) {
44
- return ["Two1"];
45
- } else {
46
- return ["One1"];
47
- }
48
- }
49
-
50
- function t1_decode(v) {
51
- var json_arr = Js_json.classify(v);
52
- if (typeof json_arr === "number") {
53
- return Spice.error(undefined, "Not a variant", v);
54
- }
55
- if (json_arr.TAG !== /* JSONArray */3) {
56
- return Spice.error(undefined, "Not a variant", v);
57
- }
58
- var json_arr$1 = json_arr._0;
59
- if (json_arr$1.length === 0) {
60
- return Spice.error(undefined, "Expected variant, found empty array", v);
61
- }
62
- var tagged = Js_array.map(Js_json.classify, json_arr$1);
63
- var match = Belt_Array.getExn(tagged, 0);
64
- if (typeof match !== "number" && match.TAG === /* JSONString */0) {
65
- switch (match._0) {
66
- case "One1" :
67
- if (tagged.length !== 1) {
68
- return Spice.error(undefined, "Invalid number of arguments to variant constructor", v);
69
- } else {
70
- return {
71
- TAG: /* Ok */0,
72
- _0: /* One1 */0
73
- };
74
- }
75
- case "Two1" :
76
- if (tagged.length !== 1) {
77
- return Spice.error(undefined, "Invalid number of arguments to variant constructor", v);
78
- } else {
79
- return {
80
- TAG: /* Ok */0,
81
- _0: /* Two1 */1
82
- };
83
- }
84
- default:
85
-
86
- }
87
- }
88
- return Spice.error(undefined, "Invalid variant constructor", Belt_Array.getExn(json_arr$1, 0));
89
- }
90
-
91
- var t2_encode = Spice.intToJson;
92
-
93
- function t2_decode(v) {
94
- return Belt_Result.map(Spice.intFromJson(v), (function (v) {
95
- return v;
96
- }));
97
- }
98
-
99
- var t3_encode = Spice.intToJson;
100
-
101
- function t3_decode(v) {
102
- return Belt_Result.map(Spice.intFromJson(v), (function (v) {
103
- return v;
104
- }));
105
- }
106
-
107
- exports.t_encode = t_encode;
108
- exports.t_decode = t_decode;
109
- exports.t1_encode = t1_encode;
110
- exports.t1_decode = t1_decode;
111
- exports.t2_encode = t2_encode;
112
- exports.t2_decode = t2_decode;
113
- exports.t3_encode = t3_encode;
114
- exports.t3_decode = t3_decode;
115
- /* No side effect */
@@ -1,11 +0,0 @@
1
- @spice
2
- type t = | @spice.as(`하나`) One | @spice.as(`둘`) Two
3
-
4
- @spice
5
- type t1 = One1 | Two1
6
-
7
- @spice @unboxed
8
- type t2 = | @spice.as(`하나`) One2(int)
9
-
10
- @spice @unboxed
11
- type t3 = One3(int)
@@ -1,11 +0,0 @@
1
- @spice
2
- type t = One | Two
3
-
4
- @spice
5
- type t1 = One1 | Two1
6
-
7
- @spice @unboxed
8
- type t2 = One2(int)
9
-
10
- @spice @unboxed
11
- type t3 = One3(int)