-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 = <>, _pipe = erlang:binary_to_atom(Table_name), _pipe@1 = db_pool_ffi:ets_queue(_pipe), {queue, _pipe@1}.