@greenlabs/ppx-spice 0.1.8 → 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 +4 -0
  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
@@ -1,237 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
- 'use strict';
3
-
4
- var Spice = require("./Spice.js");
5
- var Js_dict = require("rescript/lib/js/js_dict.js");
6
- var Js_json = require("rescript/lib/js/js_json.js");
7
- var Belt_Option = require("rescript/lib/js/belt_Option.js");
8
-
9
- function t0_encode(v) {
10
- return Js_dict.fromArray(Spice.filterOptional([
11
- [
12
- "a",
13
- false,
14
- Spice.intToJson(v.a)
15
- ],
16
- [
17
- "b",
18
- true,
19
- Spice.optionToJson(Spice.intToJson, v.b)
20
- ]
21
- ]));
22
- }
23
-
24
- function t0_decode(v) {
25
- var dict = Js_json.classify(v);
26
- if (typeof dict === "number") {
27
- return Spice.error(undefined, "Not an object", v);
28
- }
29
- if (dict.TAG !== /* JSONObject */2) {
30
- return Spice.error(undefined, "Not an object", v);
31
- }
32
- var dict$1 = dict._0;
33
- var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "a"), null));
34
- if (a.TAG === /* Ok */0) {
35
- var b = Spice.optionFromJson(Spice.intFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "b"), null));
36
- if (b.TAG === /* Ok */0) {
37
- return {
38
- TAG: /* Ok */0,
39
- _0: {
40
- a: a._0,
41
- b: b._0
42
- }
43
- };
44
- }
45
- var e = b._0;
46
- return {
47
- TAG: /* Error */1,
48
- _0: {
49
- path: ".b" + e.path,
50
- message: e.message,
51
- value: e.value
52
- }
53
- };
54
- }
55
- var e$1 = a._0;
56
- return {
57
- TAG: /* Error */1,
58
- _0: {
59
- path: ".a" + e$1.path,
60
- message: e$1.message,
61
- value: e$1.value
62
- }
63
- };
64
- }
65
-
66
- function t1_encode(v) {
67
- return Js_dict.fromArray(Spice.filterOptional([
68
- [
69
- "a",
70
- false,
71
- Spice.intToJson(v.a)
72
- ],
73
- [
74
- "bs",
75
- true,
76
- Spice.optionToJson((function (param) {
77
- return Spice.arrayToJson(Spice.intToJson, param);
78
- }), v.bs)
79
- ]
80
- ]));
81
- }
82
-
83
- function t1_decode(v) {
84
- var dict = Js_json.classify(v);
85
- if (typeof dict === "number") {
86
- return Spice.error(undefined, "Not an object", v);
87
- }
88
- if (dict.TAG !== /* JSONObject */2) {
89
- return Spice.error(undefined, "Not an object", v);
90
- }
91
- var dict$1 = dict._0;
92
- var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "a"), null));
93
- if (a.TAG === /* Ok */0) {
94
- var bs = Spice.optionFromJson((function (param) {
95
- return Spice.arrayFromJson(Spice.intFromJson, param);
96
- }), Belt_Option.getWithDefault(Js_dict.get(dict$1, "bs"), null));
97
- if (bs.TAG === /* Ok */0) {
98
- return {
99
- TAG: /* Ok */0,
100
- _0: {
101
- a: a._0,
102
- bs: bs._0
103
- }
104
- };
105
- }
106
- var e = bs._0;
107
- return {
108
- TAG: /* Error */1,
109
- _0: {
110
- path: ".bs" + e.path,
111
- message: e.message,
112
- value: e.value
113
- }
114
- };
115
- }
116
- var e$1 = a._0;
117
- return {
118
- TAG: /* Error */1,
119
- _0: {
120
- path: ".a" + e$1.path,
121
- message: e$1.message,
122
- value: e$1.value
123
- }
124
- };
125
- }
126
-
127
- function b_encode(v) {
128
- switch (v) {
129
- case /* B0 */0 :
130
- return "B0";
131
- case /* B1 */1 :
132
- return "B1";
133
- case /* B2 */2 :
134
- return "B2";
135
-
136
- }
137
- }
138
-
139
- function b_decode(v) {
140
- var str = Js_json.classify(v);
141
- if (typeof str === "number") {
142
- return Spice.error(undefined, "Not a JSONString", v);
143
- }
144
- if (str.TAG !== /* JSONString */0) {
145
- return Spice.error(undefined, "Not a JSONString", v);
146
- }
147
- var str$1 = str._0;
148
- if ("B0" === str$1) {
149
- return {
150
- TAG: /* Ok */0,
151
- _0: /* B0 */0
152
- };
153
- } else if ("B1" === str$1) {
154
- return {
155
- TAG: /* Ok */0,
156
- _0: /* B1 */1
157
- };
158
- } else if ("B2" === str$1) {
159
- return {
160
- TAG: /* Ok */0,
161
- _0: /* B2 */2
162
- };
163
- } else {
164
- return Spice.error(undefined, "Not matched", v);
165
- }
166
- }
167
-
168
- function t2_encode(v) {
169
- return Js_dict.fromArray(Spice.filterOptional([
170
- [
171
- "a",
172
- false,
173
- Spice.intToJson(v.a)
174
- ],
175
- [
176
- "bs",
177
- true,
178
- Spice.optionToJson((function (param) {
179
- return Spice.arrayToJson(b_encode, param);
180
- }), v.bs)
181
- ]
182
- ]));
183
- }
184
-
185
- function t2_decode(v) {
186
- var dict = Js_json.classify(v);
187
- if (typeof dict === "number") {
188
- return Spice.error(undefined, "Not an object", v);
189
- }
190
- if (dict.TAG !== /* JSONObject */2) {
191
- return Spice.error(undefined, "Not an object", v);
192
- }
193
- var dict$1 = dict._0;
194
- var a = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "a"), null));
195
- if (a.TAG === /* Ok */0) {
196
- var bs = Spice.optionFromJson((function (param) {
197
- return Spice.arrayFromJson(b_decode, param);
198
- }), Belt_Option.getWithDefault(Js_dict.get(dict$1, "bs"), null));
199
- if (bs.TAG === /* Ok */0) {
200
- return {
201
- TAG: /* Ok */0,
202
- _0: {
203
- a: a._0,
204
- bs: bs._0
205
- }
206
- };
207
- }
208
- var e = bs._0;
209
- return {
210
- TAG: /* Error */1,
211
- _0: {
212
- path: ".bs" + e.path,
213
- message: e.message,
214
- value: e.value
215
- }
216
- };
217
- }
218
- var e$1 = a._0;
219
- return {
220
- TAG: /* Error */1,
221
- _0: {
222
- path: ".a" + e$1.path,
223
- message: e$1.message,
224
- value: e$1.value
225
- }
226
- };
227
- }
228
-
229
- exports.t0_encode = t0_encode;
230
- exports.t0_decode = t0_decode;
231
- exports.t1_encode = t1_encode;
232
- exports.t1_decode = t1_decode;
233
- exports.b_encode = b_encode;
234
- exports.b_decode = b_decode;
235
- exports.t2_encode = t2_encode;
236
- exports.t2_decode = t2_decode;
237
- /* No side effect */
@@ -1,23 +0,0 @@
1
- @spice
2
- type t0 = {
3
- a: int,
4
- b?: int,
5
- }
6
-
7
- @spice
8
- type t1 = {
9
- a: int,
10
- bs?: array<int>,
11
- }
12
-
13
- @spice
14
- type b =
15
- | @spice.as("B0") B0
16
- | @spice.as("B1") B1
17
- | @spice.as("B2") B2
18
-
19
- @spice
20
- type t2 = {
21
- a: int,
22
- bs?: array<b>,
23
- }
@@ -1,94 +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
-
9
- function t_encode(v) {
10
- if (v === "two") {
11
- return "둘";
12
- } else {
13
- return "하나";
14
- }
15
- }
16
-
17
- function t_decode(v) {
18
- var str = Js_json.classify(v);
19
- if (typeof str === "number") {
20
- return Spice.error(undefined, "Not a JSONString", v);
21
- }
22
- if (str.TAG !== /* JSONString */0) {
23
- return Spice.error(undefined, "Not a JSONString", v);
24
- }
25
- var str$1 = str._0;
26
- if ("하나" === str$1) {
27
- return {
28
- TAG: /* Ok */0,
29
- _0: "one"
30
- };
31
- } else if ("둘" === str$1) {
32
- return {
33
- TAG: /* Ok */0,
34
- _0: "two"
35
- };
36
- } else {
37
- return Spice.error(undefined, "Not matched", v);
38
- }
39
- }
40
-
41
- function t1_encode(v) {
42
- if (v === "two") {
43
- return ["two"];
44
- } else {
45
- return ["one"];
46
- }
47
- }
48
-
49
- function t1_decode(v) {
50
- var json_arr = Js_json.classify(v);
51
- if (typeof json_arr === "number") {
52
- return Spice.error(undefined, "Not a polyvariant", v);
53
- }
54
- if (json_arr.TAG !== /* JSONArray */3) {
55
- return Spice.error(undefined, "Not a polyvariant", v);
56
- }
57
- var json_arr$1 = json_arr._0;
58
- if (json_arr$1.length === 0) {
59
- return Spice.error(undefined, "Expected polyvariant, found empty array", v);
60
- }
61
- var tagged = Js_array.map(Js_json.classify, json_arr$1);
62
- var match = Belt_Array.getExn(tagged, 0);
63
- if (typeof match !== "number" && match.TAG === /* JSONString */0) {
64
- switch (match._0) {
65
- case "one" :
66
- if (tagged.length !== 1) {
67
- return Spice.error(undefined, "Invalid number of arguments to polyvariant constructor", v);
68
- } else {
69
- return {
70
- TAG: /* Ok */0,
71
- _0: "one"
72
- };
73
- }
74
- case "two" :
75
- if (tagged.length !== 1) {
76
- return Spice.error(undefined, "Invalid number of arguments to polyvariant constructor", v);
77
- } else {
78
- return {
79
- TAG: /* Ok */0,
80
- _0: "two"
81
- };
82
- }
83
- default:
84
-
85
- }
86
- }
87
- return Spice.error(undefined, "Invalid polymorphic constructor", Belt_Array.getExn(json_arr$1, 0));
88
- }
89
-
90
- exports.t_encode = t_encode;
91
- exports.t_decode = t_decode;
92
- exports.t1_encode = t1_encode;
93
- exports.t1_decode = t1_decode;
94
- /* No side effect */
@@ -1,5 +0,0 @@
1
- @spice
2
- type t = [@spice.as(`하나`) #one | @spice.as(`둘`) #two]
3
-
4
- @spice
5
- type t1 = [#one | #two]
@@ -1,5 +0,0 @@
1
- @spice
2
- type t = [#one | #two]
3
-
4
- @spice
5
- type t1 = [#one | #two]
@@ -1,186 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
- 'use strict';
3
-
4
- var Spice = require("./Spice.js");
5
- var Js_dict = require("rescript/lib/js/js_dict.js");
6
- var Js_json = require("rescript/lib/js/js_json.js");
7
- var Belt_Option = require("rescript/lib/js/belt_Option.js");
8
-
9
- function t_encode(v) {
10
- return Js_dict.fromArray(Spice.filterOptional([
11
- [
12
- "spice-label",
13
- false,
14
- Spice.stringToJson(v.label)
15
- ],
16
- [
17
- "spice-value",
18
- false,
19
- Spice.intToJson(v.value)
20
- ]
21
- ]));
22
- }
23
-
24
- function t_decode(v) {
25
- var dict = Js_json.classify(v);
26
- if (typeof dict === "number") {
27
- return Spice.error(undefined, "Not an object", v);
28
- }
29
- if (dict.TAG !== /* JSONObject */2) {
30
- return Spice.error(undefined, "Not an object", v);
31
- }
32
- var dict$1 = dict._0;
33
- var label = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "spice-label"), null));
34
- if (label.TAG === /* Ok */0) {
35
- var value = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "spice-value"), null));
36
- if (value.TAG === /* Ok */0) {
37
- return {
38
- TAG: /* Ok */0,
39
- _0: {
40
- label: label._0,
41
- value: value._0
42
- }
43
- };
44
- }
45
- var e = value._0;
46
- return {
47
- TAG: /* Error */1,
48
- _0: {
49
- path: ".spice-value" + e.path,
50
- message: e.message,
51
- value: e.value
52
- }
53
- };
54
- }
55
- var e$1 = label._0;
56
- return {
57
- TAG: /* Error */1,
58
- _0: {
59
- path: ".spice-label" + e$1.path,
60
- message: e$1.message,
61
- value: e$1.value
62
- }
63
- };
64
- }
65
-
66
- function t1_encode(v) {
67
- return Js_dict.fromArray(Spice.filterOptional([
68
- [
69
- "label",
70
- false,
71
- Spice.stringToJson(v.label)
72
- ],
73
- [
74
- "value",
75
- false,
76
- Spice.intToJson(v.value)
77
- ]
78
- ]));
79
- }
80
-
81
- function t1_decode(v) {
82
- var dict = Js_json.classify(v);
83
- if (typeof dict === "number") {
84
- return Spice.error(undefined, "Not an object", v);
85
- }
86
- if (dict.TAG !== /* JSONObject */2) {
87
- return Spice.error(undefined, "Not an object", v);
88
- }
89
- var dict$1 = dict._0;
90
- var label = Spice.stringFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "label"), null));
91
- if (label.TAG === /* Ok */0) {
92
- var value = Spice.intFromJson(Belt_Option.getWithDefault(Js_dict.get(dict$1, "value"), null));
93
- if (value.TAG === /* Ok */0) {
94
- return {
95
- TAG: /* Ok */0,
96
- _0: {
97
- label: label._0,
98
- value: value._0
99
- }
100
- };
101
- }
102
- var e = value._0;
103
- return {
104
- TAG: /* Error */1,
105
- _0: {
106
- path: ".value" + e.path,
107
- message: e.message,
108
- value: e.value
109
- }
110
- };
111
- }
112
- var e$1 = label._0;
113
- return {
114
- TAG: /* Error */1,
115
- _0: {
116
- path: ".label" + e$1.path,
117
- message: e$1.message,
118
- value: e$1.value
119
- }
120
- };
121
- }
122
-
123
- function tOp_encode(v) {
124
- return Js_dict.fromArray(Spice.filterOptional([
125
- [
126
- "label",
127
- false,
128
- Spice.optionToJson(Spice.stringToJson, v.label)
129
- ],
130
- [
131
- "value",
132
- true,
133
- Spice.optionToJson(Spice.intToJson, v.value)
134
- ]
135
- ]));
136
- }
137
-
138
- function tOp_decode(v) {
139
- var dict = Js_json.classify(v);
140
- if (typeof dict === "number") {
141
- return Spice.error(undefined, "Not an object", v);
142
- }
143
- if (dict.TAG !== /* JSONObject */2) {
144
- return Spice.error(undefined, "Not an object", v);
145
- }
146
- var dict$1 = dict._0;
147
- var label = Spice.optionFromJson(Spice.stringFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "label"), null));
148
- if (label.TAG === /* Ok */0) {
149
- var value = Spice.optionFromJson(Spice.intFromJson, Belt_Option.getWithDefault(Js_dict.get(dict$1, "value"), null));
150
- if (value.TAG === /* Ok */0) {
151
- return {
152
- TAG: /* Ok */0,
153
- _0: {
154
- label: label._0,
155
- value: value._0
156
- }
157
- };
158
- }
159
- var e = value._0;
160
- return {
161
- TAG: /* Error */1,
162
- _0: {
163
- path: ".value" + e.path,
164
- message: e.message,
165
- value: e.value
166
- }
167
- };
168
- }
169
- var e$1 = label._0;
170
- return {
171
- TAG: /* Error */1,
172
- _0: {
173
- path: ".label" + e$1.path,
174
- message: e$1.message,
175
- value: e$1.value
176
- }
177
- };
178
- }
179
-
180
- exports.t_encode = t_encode;
181
- exports.t_decode = t_decode;
182
- exports.t1_encode = t1_encode;
183
- exports.t1_decode = t1_decode;
184
- exports.tOp_encode = tOp_encode;
185
- exports.tOp_decode = tOp_decode;
186
- /* No side effect */
@@ -1,17 +0,0 @@
1
- @spice
2
- type t = {
3
- @spice.key("spice-label") label: string,
4
- @spice.key("spice-value") value: int,
5
- }
6
-
7
- @spice
8
- type t1 = {
9
- label: string,
10
- value: int,
11
- }
12
-
13
- @spice
14
- type tOp = {
15
- label: option<string>,
16
- value?: int,
17
- }
@@ -1,17 +0,0 @@
1
- @spice
2
- type t = {
3
- label: string,
4
- value: int,
5
- }
6
-
7
- @spice
8
- type t1 = {
9
- label: string,
10
- value: int,
11
- }
12
-
13
- @spice
14
- type tOp = {
15
- label: option<string>,
16
- value?: int,
17
- }