@@ -31,6 +31,48 @@ pub type FooJson {
31
31
)
32
32
}
33
33
34
+ // src/foo_json.gleam
35
+ // generated!
36
+ import gleam/json
37
+ import gleam/dynamic
38
+ import internal/foo
39
+
40
+ pub fn to_json(t: foo.FooJson) {
41
+ json.object([
42
+ #("a_bool", json.bool(t.a_bool)),
43
+ #("b_int", json.int(t.b_int)),
44
+ #("c_float", json.float(t.c_float)),
45
+ #(
46
+ "d_two_tuple",
47
+ json.preprocessed_array([
48
+ json.int(t.d_two_tuple.0),
49
+ json.string(t.d_two_tuple.1),
50
+ ]),
51
+ ),
52
+ #("e_option_int", json.nullable(t.e_option_int, json.int)),
53
+ #("f_string_list", json.array(t.f_string_list, json.string)),
54
+ ])
55
+ }
56
+
57
+ pub fn to_string(t: foo.FooJson) {
58
+ json.to_string(to_json(t))
59
+ }
60
+
61
+ pub fn from_json(json_str: String) {
62
+ json.decode(
63
+ json_str,
64
+ dynamic.decode6(
65
+ foo.Foo,
66
+ dynamic.field("a_bool", dynamic.bool),
67
+ dynamic.field("b_int", dynamic.int),
68
+ dynamic.field("c_float", dynamic.float),
69
+ dynamic.field("d_two_tuple", dynamic.tuple2(dynamic.int, dynamic.string)),
70
+ dynamic.field("e_option_int", dynamic.optional(dynamic.int)),
71
+ dynamic.field("f_string_list", dynamic.list(dynamic.string)),
72
+ ),
73
+ )
74
+ }
75
+
34
76
// src/my_module.gleam
35
77
import foo
36
78
import foo_json
0 commit comments