-module(carpenter@table@set). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([table/1, insert/3, lookup/2, delete/2]). -spec table(carpenter@internal@table_type@set:set(FYH, FYI)) -> carpenter@table:table(FYH, FYI). table(Set) -> erlang:element(2, Set). -spec insert(carpenter@internal@table_type@set:set(FYN, FYO), FYN, FYO) -> carpenter@internal@table_type@set:set(FYN, FYO). insert(Set, Key, Value) -> ets:insert( begin _pipe = erlang:element(2, Set), carpenter@table:name(_pipe) end, {Key, Value} ), Set. -spec lookup(carpenter@internal@table_type@set:set(FYT, FYU), FYT) -> gleam@option:option(FYU). lookup(Set, Key) -> case ets:lookup( begin _pipe = erlang:element(2, Set), carpenter@table:name(_pipe) end, Key ) of [] -> none; [Value | _] -> {some, erlang:element(2, Value)} end. -spec delete(carpenter@internal@table_type@set:set(FYY, FYZ), FYY) -> carpenter@internal@table_type@set:set(FYY, FYZ). delete(Set, Key) -> ets:delete( begin _pipe = erlang:element(2, Set), carpenter@table:name(_pipe) end, Key ), Set.