Current section
Files
Jump to
Current section
Files
src/gwr@exec@trap.erl
-module(gwr@exec@trap).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gwr/exec/trap.gleam").
-export([make/1, add_message/2, to_error/1, kind/1]).
-export_type([trap/0, kind/0]).
-opaque trap() :: {trap,
kind(),
gleam@option:option(binary()),
list(gwr@debug:stacktrace())}.
-type kind() :: unknown |
bad_argument |
index_out_of_bounds |
unreachable |
invalid_state |
division_by_zero |
overflow.
-file("src/gwr/exec/trap.gleam", 25).
-spec make(kind()) -> trap().
make(Kind) ->
{trap,
Kind,
none,
begin
_pipe = debug:get_stacktrace(),
gleam@list:drop(_pipe, 2)
end}.
-file("src/gwr/exec/trap.gleam", 33).
-spec add_message(trap(), binary()) -> trap().
add_message(Trap, Message) ->
{trap, erlang:element(2, Trap), {some, Message}, erlang:element(4, Trap)}.
-file("src/gwr/exec/trap.gleam", 37).
-spec to_error(trap()) -> {ok, any()} | {error, trap()}.
to_error(Trap) ->
{error, Trap}.
-file("src/gwr/exec/trap.gleam", 41).
-spec kind(trap()) -> kind().
kind(Trap) ->
erlang:element(2, Trap).