From a4dcfaba11a73fe38595eedfc7a1ce542cdc17d9 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sat, 1 Jan 2022 16:12:36 +0000 Subject: Label for nullable --- CHANGELOG.md | 1 + src/gleam/json.gleam | 6 ++---- test/gleam_json_test.gleam | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f615d7..9549e20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ `thoas` Erlang JSON library. - The `encode` function has been replaced by `to_string` and `to_string_builder` functions. +- The `nullable` function gains argument labels. ## v0.1.0 - 2020-07-30 diff --git a/src/gleam/json.gleam b/src/gleam/json.gleam index b509d7c..dcaf02e 100644 --- a/src/gleam/json.gleam +++ b/src/gleam/json.gleam @@ -47,11 +47,9 @@ pub external fn null() -> Json = "thoas_encode" "null" // TODO: document -// TODO: test -// TODO: change argument order -pub fn nullable(input: Option(a), inner: fn(a) -> Json) -> Json { +pub fn nullable(input: Option(a), the inner_type: fn(a) -> Json) -> Json { case input { - Some(value) -> inner(value) + Some(value) -> inner_type(value) None -> null() } } diff --git a/test/gleam_json_test.gleam b/test/gleam_json_test.gleam index 7617ebb..dae51b6 100644 --- a/test/gleam_json_test.gleam +++ b/test/gleam_json_test.gleam @@ -47,12 +47,12 @@ pub fn encode_list_test() { } pub fn encode_nullable_some_test() { - json.nullable(Some(5), json.int) + json.nullable(Some(5), the: json.int) |> should_encode("5") } pub fn encode_nullable_none_test() { - json.nullable(None, json.int) + json.nullable(None, the: json.int) |> should_encode("null") } -- cgit v1.2.3