diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-11-11 23:13:01 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-11-11 23:13:01 +0000 |
commit | 0bcd8c145988e7a5baf8983262e7d17b24159944 (patch) | |
tree | 61d288c963a19d1d8feb70f5e36b084bb6494956 | |
parent | 5f0a4a01f9650f00398b5b4fdf10447ad667afda (diff) | |
download | gleam_stdlib-0bcd8c145988e7a5baf8983262e7d17b24159944.tar.gz gleam_stdlib-0bcd8c145988e7a5baf8983262e7d17b24159944.zip |
Improve string inspect map formatting
-rw-r--r-- | src/gleam_stdlib.erl | 6 | ||||
-rw-r--r-- | test/gleam/string_test.gleam | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/gleam_stdlib.erl b/src/gleam_stdlib.erl index c6b5130..7414439 100644 --- a/src/gleam_stdlib.erl +++ b/src/gleam_stdlib.erl @@ -373,6 +373,12 @@ inspect(false) -> "False"; inspect(nil) -> "Nil"; +inspect(Data) when is_map(Data) -> + Fields = [ + [<<"#(">>, inspect(Key), <<", ">>, inspect(Value), <<")">>] + || {Key, Value} <- maps:to_list(Data) + ], + ["map.from_list([", lists:join(", ", Fields), "])"]; inspect(Atom) when is_atom(Atom) -> Binary = erlang:atom_to_binary(Atom), case inspect_maybe_gleam_atom(Binary, none, <<>>) of diff --git a/test/gleam/string_test.gleam b/test/gleam/string_test.gleam index e1e2fcd..19341d0 100644 --- a/test/gleam/string_test.gleam +++ b/test/gleam/string_test.gleam @@ -1,4 +1,5 @@ import gleam/option.{None, Some} +import gleam/map import gleam/order import gleam/should import gleam/string @@ -1086,3 +1087,9 @@ pub fn byte_size_test() { let assert 8 = string.byte_size("👩🏾") let assert 15 = string.byte_size("👩🏾🦰") } + +pub fn inspect_map_test() { + map.from_list([#("a", 1), #("b", 2)]) + |> string.inspect + |> should.equal("map.from_list([#(\"a\", 1), #(\"b\", 2)])") +} |