Current section

Files

Jump to
ducky src ducky@internal@connection.erl
Raw

src/ducky@internal@connection.erl

-module(ducky@internal@connection).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/ducky/internal/connection.gleam").
-export([native/1, path/1, do_connect/1, do_close/1, execute_raw/2]).
-export_type([connection/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 connection() :: {connection,
ducky@internal@ffi:native_connection(),
binary()}.
-file("src/ducky/internal/connection.gleam", 15).
?DOC(false).
-spec native(connection()) -> ducky@internal@ffi:native_connection().
native(Connection) ->
erlang:element(2, Connection).
-file("src/ducky/internal/connection.gleam", 20).
?DOC(false).
-spec path(connection()) -> binary().
path(Connection) ->
erlang:element(3, Connection).
-file("src/ducky/internal/connection.gleam", 26).
?DOC(false).
-spec do_connect(binary()) -> {ok, connection()} |
{error, gleam@dynamic:dynamic_()}.
do_connect(Db_path) ->
_pipe = ducky_nif:connect(Db_path),
gleam@result:map(_pipe, fun(Nat) -> {connection, Nat, Db_path} end).
-file("src/ducky/internal/connection.gleam", 33).
?DOC(false).
-spec do_close(connection()) -> {ok, nil} | {error, gleam@dynamic:dynamic_()}.
do_close(Connection) ->
_pipe = ducky_nif:close(erlang:element(2, Connection)),
gleam@result:map(_pipe, fun(_) -> nil end).
-file("src/ducky/internal/connection.gleam", 40).
?DOC(false).
-spec execute_raw(connection(), binary()) -> {ok, nil} |
{error, gleam@dynamic:dynamic_()}.
execute_raw(Connection, Sql) ->
_pipe = ducky_nif:execute_query(erlang:element(2, Connection), Sql, []),
gleam@result:map(_pipe, fun(_) -> nil end).