diff options
author | inoas <mail@inoas.com> | 2022-06-08 19:36:47 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-08 20:36:47 +0100 |
commit | 28ebbd29a171ceebe74c075f6a05ef86b727e002 (patch) | |
tree | f0b7862513577ac58eb2c64aef954c094f08bf2c /src | |
parent | dd5a95548f43097e1aea624fc1e1576f4140f897 (diff) | |
download | gleam_stdlib-28ebbd29a171ceebe74c075f6a05ef86b727e002.tar.gz gleam_stdlib-28ebbd29a171ceebe74c075f6a05ef86b727e002.zip |
fix io.debug to behave the same on Erlang and JavaScript (#308)
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/io.gleam | 25 | ||||
-rw-r--r-- | src/gleam/string.gleam | 11 |
2 files changed, 13 insertions, 23 deletions
diff --git a/src/gleam/io.gleam b/src/gleam/io.gleam index 5a485c9..3e4fadb 100644 --- a/src/gleam/io.gleam +++ b/src/gleam/io.gleam @@ -1,3 +1,5 @@ +import gleam/string + /// Writes a string to standard output. /// /// If you want your output to be printed on its own line see `println`. @@ -48,7 +50,7 @@ if javascript { "../gleam_stdlib.mjs" "log" } -/// Prints a value to standard output using Erlang syntax. +/// Prints a value to standard output (stdout) yielding Gleam syntax. /// /// The value is returned after being printed so it can be used in pipelines. /// @@ -73,24 +75,9 @@ if javascript { /// ``` /// pub fn debug(term: anything) -> anything { - debug_print(term) term -} - -if erlang { - fn debug_print(term: anything) -> DoNotLeak { - erlang_fwrite("~tp\n", [term]) - } -} + |> string.inspect + |> println -if javascript { - external fn debug_print(anything) -> Nil = - "../gleam_stdlib.mjs" "debug" -} - -if erlang { - external type DoNotLeak - - external fn erlang_fwrite(String, List(a)) -> DoNotLeak = - "io" "fwrite" + term } diff --git a/src/gleam/string.gleam b/src/gleam/string.gleam index d06e2dd..a25bdd7 100644 --- a/src/gleam/string.gleam +++ b/src/gleam/string.gleam @@ -6,6 +6,7 @@ import gleam/list import gleam/option.{None, Option, Some} import gleam/order import gleam/string_builder +import gleam/string_builder.{StringBuilder} if erlang { import gleam/result @@ -824,17 +825,19 @@ pub fn capitalise(s: String) -> String { } } -pub fn inspect(value: a) -> String { - do_inspect(value) +/// Returns a `String` representation of values in Gleam syntax. +/// +pub fn inspect(term: anything) -> String { + do_inspect(term) |> string_builder.to_string } if javascript { - external fn do_inspect(value: a) -> string_builder.StringBuilder = + external fn do_inspect(term: anything) -> StringBuilder = "../gleam.mjs" "inspect" } if erlang { - external fn do_inspect(value: a) -> string_builder.StringBuilder = + external fn do_inspect(term: anything) -> StringBuilder = "gleam_stdlib" "inspect" } |