Current section
Files
Jump to
Current section
Files
src/gabsurd@param.erl
-module(gabsurd@param).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gabsurd/param.gleam").
-export([to_pog/1]).
-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(" Converts parrot Param values to pog Value for PostgreSQL queries.\n").
-file("src/gabsurd/param.gleam", 7).
?DOC(" Convert a parrot Param to a pog Value for use with PostgreSQL.\n").
-spec to_pog(parrot@dev:param()) -> pog:value().
to_pog(Param) ->
case Param of
{param_bool, X} ->
pog_ffi:coerce(X);
{param_float, X@1} ->
pog_ffi:coerce(X@1);
{param_int, X@2} ->
pog_ffi:coerce(X@2);
{param_string, X@3} ->
pog_ffi:coerce(X@3);
{param_bit_array, X@4} ->
pog_ffi:coerce(X@4);
{param_list, X@5} ->
pog:array(fun to_pog/1, X@5);
{param_nullable, X@6} ->
pog:nullable(fun to_pog/1, X@6);
{param_date, X@7} ->
pog:calendar_date(X@7);
{param_timestamp, X@8} ->
pog:timestamp(X@8);
{param_dynamic, _} ->
erlang:error(#{gleam_error => panic,
message => <<"cannot convert dynamic param to pog"/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"gabsurd/param"/utf8>>,
function => <<"to_pog"/utf8>>,
line => 18})
end.