-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 => <>, module => <<"gabsurd/param"/utf8>>, function => <<"to_pog"/utf8>>, line => 18}) end.