Packages
gleam_erlang
0.16.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).
-export([format/1, term_to_binary/1, binary_to_term/1, unsafe_binary_to_term/1, get_line/1, system_time/1, erlang_timestamp/0, rescue/1, start_arguments/0, ensure_all_started/1, make_reference/0]).
-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) ->
erlang:list_to_binary(io_lib:format(<<"~p"/utf8>>, [Term])).
-spec term_to_binary(any()) -> bitstring().
term_to_binary(A) ->
erlang:term_to_binary(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, _@1} ->
{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, _@1} ->
{error, nil}
end.
-spec get_line(binary()) -> {ok, binary()} | {error, get_line_error()}.
get_line(A) ->
gleam_erlang_ffi:get_line(A).
-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(() -> EKF)) -> {ok, EKF} | {error, crash()}.
rescue(A) ->
gleam_erlang_ffi:rescue(A).
-spec start_arguments() -> list(binary()).
start_arguments() ->
_pipe = init:get_plain_arguments(),
gleam@list:map(_pipe, fun gleam@erlang@charlist:to_string/1).
-spec ensure_all_started(gleam@erlang@atom:atom_()) -> {ok,
list(gleam@erlang@atom:atom_())} |
{error, ensure_all_started_error()}.
ensure_all_started(A) ->
gleam_erlang_ffi:ensure_all_started(A).
-spec make_reference() -> reference_().
make_reference() ->
erlang:make_ref().