-module(parrot@sql). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([datetime_decoder/0]). -export_type([param/0]). -type param() :: {param_int, integer()} | {param_string, binary()} | {param_float, float()} | {param_bool, boolean()} | {param_timestamp, gleam@time@timestamp:timestamp()} | {param_dynamic, gleam@dynamic:dynamic_()}. -file("src/parrot/sql.gleam", 13). -spec datetime_decoder() -> gleam@dynamic@decode:decoder(gleam@time@timestamp:timestamp()). datetime_decoder() -> _pipe = {decoder, fun gleam@dynamic@decode:decode_string/1}, gleam@dynamic@decode:then( _pipe, fun(Datetime_str) -> case gleam@time@timestamp:parse_rfc3339(Datetime_str) of {ok, Ts} -> gleam@dynamic@decode:success(Ts); {error, _} -> gleam@dynamic@decode:failure( gleam@time@timestamp:from_unix_seconds(0), <<"Invalid datetime format"/utf8>> ) end end ).