Current section
Files
Jump to
Current section
Files
src/db_pool@internal@queue.erl
-module(db_pool@internal@queue).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/db_pool/internal/queue.gleam").
-export([size/1, first_lookup/1, lookup/2, insert/3, delete_key/2, new/1]).
-export_type([queue/2, info_item/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-opaque queue(FOC, FOD) :: {queue, gleam@erlang@atom:atom_()} |
{gleam_phantom, FOC, FOD}.
-type info_item() :: size.
-file("src/db_pool/internal/queue.gleam", 39).
?DOC(false).
-spec size(queue(any(), any())) -> {ok, integer()} | {error, nil}.
size(Queue) ->
db_pool_ffi:ets_info(erlang:element(2, Queue), size).
-file("src/db_pool/internal/queue.gleam", 20).
?DOC(false).
-spec first_lookup(queue(FOI, FOJ)) -> {ok, {FOI, FOJ}} | {error, nil}.
first_lookup(Queue) ->
db_pool_ffi:ets_first_lookup(erlang:element(2, Queue)).
-file("src/db_pool/internal/queue.gleam", 24).
?DOC(false).
-spec lookup(queue(FOO, FOP), FOO) -> {ok, FOP} | {error, nil}.
lookup(Queue, Key) ->
db_pool_ffi:ets_lookup(erlang:element(2, Queue), Key).
-file("src/db_pool/internal/queue.gleam", 30).
?DOC(false).
-spec insert(queue(FOU, FOV), FOU, FOV) -> {ok, nil} | {error, nil}.
insert(Queue, Key, Value) ->
db_pool_ffi:ets_insert(erlang:element(2, Queue), Key, Value).
-file("src/db_pool/internal/queue.gleam", 35).
?DOC(false).
-spec delete_key(queue(FPA, any()), FPA) -> {ok, nil} | {error, nil}.
delete_key(Queue, Key) ->
db_pool_ffi:ets_delete(erlang:element(2, Queue), Key).
-file("src/db_pool/internal/queue.gleam", 10).
?DOC(false).
-spec new(binary()) -> queue(any(), any()).
new(Name) ->
Table_name = <<Name/binary,
(erlang:integer_to_binary(db_pool_ffi:unique_int()))/binary>>,
_pipe = erlang:binary_to_atom(Table_name),
_pipe@1 = db_pool_ffi:ets_queue(_pipe),
{queue, _pipe@1}.