Packages
gleam_erlang
0.23.0
1.3.0
1.2.0
1.1.0
1.0.0
1.0.0-rc1
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.18.0-rc1
retired
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Types and functions for programs running on Erlang!
Current section
Files
Jump to
Current section
Files
src/gleam@erlang.erl
-module(gleam@erlang).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]).
-export([format/1, term_to_binary/1, get_line/1, system_time/1, erlang_timestamp/0, rescue/1, binary_to_term/1, unsafe_binary_to_term/1, start_arguments/0, ensure_all_started/1, make_reference/0, priv_directory/1]).
-export_type([safe/0, get_line_error/0, time_unit/0, crash/0, ensure_all_started_error/0, reference_/0]).
-type safe() :: safe.
-type get_line_error() :: eof | no_data.
-type time_unit() :: second | millisecond | microsecond | nanosecond.
-type crash() :: {exited, gleam@dynamic:dynamic_()} |
{thrown, gleam@dynamic:dynamic_()} |
{errored, gleam@dynamic:dynamic_()}.
-type ensure_all_started_error() :: {unknown_application,
gleam@erlang@atom:atom_()} |
{application_failed_to_start,
gleam@erlang@atom:atom_(),
gleam@dynamic:dynamic_()}.
-type reference_() :: any().
-spec format(any()) -> binary().
format(Term) ->
unicode:characters_to_binary(io_lib:format(<<"~p"/utf8>>, [Term])).
-spec term_to_binary(any()) -> bitstring().
term_to_binary(A) ->
erlang:term_to_binary(A).
-spec get_line(binary()) -> {ok, binary()} | {error, get_line_error()}.
get_line(Prompt) ->
gleam_erlang_ffi:get_line(Prompt).
-spec system_time(time_unit()) -> integer().
system_time(A) ->
os:system_time(A).
-spec erlang_timestamp() -> {integer(), integer(), integer()}.
erlang_timestamp() ->
os:timestamp().
-spec rescue(fun(() -> FHR)) -> {ok, FHR} | {error, crash()}.
rescue(A) ->
gleam_erlang_ffi:rescue(A).
-spec binary_to_term(bitstring()) -> {ok, gleam@dynamic:dynamic_()} |
{error, nil}.
binary_to_term(Binary) ->
case gleam_erlang_ffi:rescue(
fun() -> erlang:binary_to_term(Binary, [safe]) end
) of
{ok, Term} ->
{ok, Term};
{error, _} ->
{error, nil}
end.
-spec unsafe_binary_to_term(bitstring()) -> {ok, gleam@dynamic:dynamic_()} |
{error, nil}.
unsafe_binary_to_term(Binary) ->
case gleam_erlang_ffi:rescue(fun() -> erlang:binary_to_term(Binary, []) end) of
{ok, Term} ->
{ok, Term};
{error, _} ->
{error, nil}
end.
-spec start_arguments() -> list(binary()).
start_arguments() ->
_pipe = init:get_plain_arguments(),
gleam@list:map(_pipe, fun unicode:characters_to_binary/1).
-spec ensure_all_started(gleam@erlang@atom:atom_()) -> {ok,
list(gleam@erlang@atom:atom_())} |
{error, ensure_all_started_error()}.
ensure_all_started(Application) ->
gleam_erlang_ffi:ensure_all_started(Application).
-spec make_reference() -> reference_().
make_reference() ->
erlang:make_ref().
-spec priv_directory(binary()) -> {ok, binary()} | {error, nil}.
priv_directory(Name) ->
gleam_erlang_ffi:priv_directory(Name).