Skip to content

Commit

Permalink
docs: demo
Browse files Browse the repository at this point in the history
  • Loading branch information
cdaringe committed Feb 2, 2024
1 parent 0b44696 commit b16674e
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 3 deletions.
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,48 @@ pub type FooJson {
)
}
// src/foo_json.gleam
// generated!
import gleam/json
import gleam/dynamic
import internal/foo
pub fn to_json(t: foo.FooJson) {
json.object([
#("a_bool", json.bool(t.a_bool)),
#("b_int", json.int(t.b_int)),
#("c_float", json.float(t.c_float)),
#(
"d_two_tuple",
json.preprocessed_array([
json.int(t.d_two_tuple.0),
json.string(t.d_two_tuple.1),
]),
),
#("e_option_int", json.nullable(t.e_option_int, json.int)),
#("f_string_list", json.array(t.f_string_list, json.string)),
])
}
pub fn to_string(t: foo.FooJson) {
json.to_string(to_json(t))
}
pub fn from_json(json_str: String) {
json.decode(
json_str,
dynamic.decode6(
foo.Foo,
dynamic.field("a_bool", dynamic.bool),
dynamic.field("b_int", dynamic.int),
dynamic.field("c_float", dynamic.float),
dynamic.field("d_two_tuple", dynamic.tuple2(dynamic.int, dynamic.string)),
dynamic.field("e_option_int", dynamic.optional(dynamic.int)),
dynamic.field("f_string_list", dynamic.list(dynamic.string)),
),
)
}
// src/my_module.gleam
import foo
import foo_json
Expand Down
5 changes: 2 additions & 3 deletions test/gserde_test.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ pub fn end_to_end_test() {
|> should.equal(
"{\"a_bool\":true,\"b_int\":1,\"c_float\":1.0,\"d_two_tuple\":[2,\"3\"],\"e_option_int\":4,\"f_string_list\":[\"a\",\"b\"]}",
)

["foo.gleam", "foo_json.gleam", "foo_json_test.gleam"]
|> list.each(fn(basename) { exec("rm", ["-f", "src/internal/" <> basename]) })
// ["foo.gleam", "foo_json.gleam", "foo_json_test.gleam"]
// |> list.each(fn(basename) { exec("rm", ["-f", "src/internal/" <> basename]) })
}

0 comments on commit b16674e

Please sign in to comment.