-module(themis@internal@erlang@ets). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([new/2, info/1, insert/3, insert_many/2, insert_raw/2, insert_new_raw/2, lookup/2, counter_increment/2, match_metric/2, match_record/2, counter_increment_by/3]). -export_type([table_builder/0, table/0, table_type/0, table_info/0, table_access/0, tid/0]). -type table_builder() :: {table_builder, table_type(), table_access()}. -type table() :: any(). -type table_type() :: set | ordered_set | bag | duplicate_bag. -type table_info() :: {table_info, tid(), boolean(), boolean(), boolean(), boolean(), integer(), gleam@erlang@process:pid_(), gleam@option:option(gleam@erlang@process:pid_()), gleam@erlang@atom:atom_(), integer(), gleam@erlang@atom:atom_(), boolean(), table_type(), integer(), table_access()}. -type table_access() :: public | protected | private. -type tid() :: any(). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 49). -spec new(table_builder(), binary()) -> table(). new(Builder, Name) -> _pipe = erlang:binary_to_atom(Name), themis_external:new( _pipe, erlang:element(2, Builder), erlang:element(3, Builder) ). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 54). -spec info(table()) -> table_info(). info(Table) -> R = themis_external:info(Table), {table_info, erlang:element(2, erlang:element(1, R)), erlang:element(2, erlang:element(2, R)), erlang:element(2, erlang:element(3, R)), erlang:element(2, erlang:element(4, R)), erlang:element(2, erlang:element(5, R)), erlang:element(2, erlang:element(6, R)), erlang:element(2, erlang:element(7, R)), erlang:element(2, erlang:element(8, R)), erlang:element(2, erlang:element(9, R)), erlang:element(2, erlang:element(10, R)), erlang:element(2, erlang:element(11, R)), erlang:element(2, erlang:element(12, R)), erlang:element(2, erlang:element(13, R)), erlang:element(2, erlang:element(14, R)), erlang:element(2, erlang:element(15, R))}. -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 75). -spec insert(table(), any(), any()) -> boolean(). insert(Table, Key, Value) -> ets:insert( Table, begin _pipe = {Key, Value}, gleam_stdlib:identity(_pipe) end ). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 88). -spec insert_many(table(), gleam@dict:dict(any(), any())) -> boolean(). insert_many(Table, To_insert) -> Objects = begin _pipe = maps:to_list(To_insert), gleam_stdlib:identity(_pipe) end, ets:insert(Table, Objects). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 95). -spec insert_raw(table(), any()) -> boolean(). insert_raw(Table, Object) -> ets:insert(Table, Object). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 79). -spec insert_new_raw(table(), gleam@dynamic:dynamic_()) -> {ok, nil} | {error, nil}. insert_new_raw(Table, Object) -> R = ets:insert_new(Table, Object), case begin _pipe = R, gleam@dynamic:bool(_pipe) end of {error, _} -> {error, nil}; {ok, true} -> {ok, nil}; {ok, false} -> {error, nil} end. -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 99). -spec lookup(table(), any()) -> list(gleam@dynamic:dynamic_()). lookup(Table, Key) -> ets:lookup(Table, Key). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 117). -spec counter_increment(table(), any()) -> nil. counter_increment(Table, Key) -> themis_external:counter_increment_by(Table, Key, 1), nil. -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 122). -spec match_metric(table(), any()) -> list(gleam@dynamic:dynamic_()). match_metric(Table, Kind) -> themis_external:match_metric(Table, Kind). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 126). -spec match_record(table(), binary()) -> list(gleam@dynamic:dynamic_()). match_record(Table, Name) -> themis_external:match_record(Table, Name). -file("/git/Themis/src/themis/internal/erlang/ets.gleam", 106). -spec counter_increment_by(table(), any(), themis@number:number_()) -> nil. counter_increment_by(Table, Key, By) -> case By of {dec, Val} -> themis_external:counter_increment_by_decimal(Table, Key, Val); {int, Val@1} -> themis_external:counter_increment_by(Table, Key, Val@1); na_n -> erlang:error(#{gleam_error => panic, message => <<"can not increment a counter by NaN"/utf8>>, module => <<"themis/internal/erlang/ets"/utf8>>, function => <<"counter_increment_by"/utf8>>, line => 110}); neg_inf -> erlang:error(#{gleam_error => panic, message => <<"can not increment a counter by -Inf"/utf8>>, module => <<"themis/internal/erlang/ets"/utf8>>, function => <<"counter_increment_by"/utf8>>, line => 111}); pos_inf -> erlang:error(#{gleam_error => panic, message => <<"can not increment a counter by +Inf"/utf8>>, module => <<"themis/internal/erlang/ets"/utf8>>, function => <<"counter_increment_by"/utf8>>, line => 112}) end, nil.