-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).