-module(gdo@decode).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gdo/decode.gleam").
-export([decode/2, succeed/1, map/2, map2/3, map3/4, column/2, column_at/2, nullable/1, int/0, float/0, bool/0, string/0, bytes/0]).
-file("src/gdo/decode.gleam", 12).
-spec decode(
gdo@row:row(),
fun((gdo@row:row()) -> {ok, KTH} | {error, gdo@error:error()})
) -> {ok, KTH} | {error, gdo@error:error()}.
decode(Current_row, Decoder) ->
Decoder(Current_row).
-file("src/gdo/decode.gleam", 19).
-spec succeed(KTL) -> fun((gdo@row:row()) -> {ok, KTL} |
{error, gdo@error:error()}).
succeed(Value) ->
fun(_) -> {ok, Value} end.
-file("src/gdo/decode.gleam", 23).
-spec map(
fun((gdo@row:row()) -> {ok, KTN} | {error, gdo@error:error()}),
fun((KTN) -> KTP)
) -> fun((gdo@row:row()) -> {ok, KTP} | {error, gdo@error:error()}).
map(Decoder, Transform) ->
fun(Current_row) -> case Decoder(Current_row) of
{ok, Decoded} ->
{ok, Transform(Decoded)};
{error, Error} ->
{error, Error}
end end.
-file("src/gdo/decode.gleam", 32).
-spec map2(
fun((gdo@row:row()) -> {ok, KTR} | {error, gdo@error:error()}),
fun((gdo@row:row()) -> {ok, KTT} | {error, gdo@error:error()}),
fun((KTR, KTT) -> KTV)
) -> fun((gdo@row:row()) -> {ok, KTV} | {error, gdo@error:error()}).
map2(Decoder1, Decoder2, Combine) ->
fun(Current_row) -> case Decoder1(Current_row) of
{ok, Value1} ->
case Decoder2(Current_row) of
{ok, Value2} ->
{ok, Combine(Value1, Value2)};
{error, Error} ->
{error, Error}
end;
{error, Error@1} ->
{error, Error@1}
end end.
-file("src/gdo/decode.gleam", 49).
-spec map3(
fun((gdo@row:row()) -> {ok, KTX} | {error, gdo@error:error()}),
fun((gdo@row:row()) -> {ok, KTZ} | {error, gdo@error:error()}),
fun((gdo@row:row()) -> {ok, KUB} | {error, gdo@error:error()}),
fun((KTX, KTZ, KUB) -> KUD)
) -> fun((gdo@row:row()) -> {ok, KUD} | {error, gdo@error:error()}).
map3(Decoder1, Decoder2, Decoder3, Combine) ->
fun(Current_row) -> case Decoder1(Current_row) of
{ok, Value1} ->
case Decoder2(Current_row) of
{ok, Value2} ->
case Decoder3(Current_row) of
{ok, Value3} ->
{ok, Combine(Value1, Value2, Value3)};
{error, Error} ->
{error, Error}
end;
{error, Error@1} ->
{error, Error@1}
end;
{error, Error@2} ->
{error, Error@2}
end end.
-file("src/gdo/decode.gleam", 71).
-spec column(
binary(),
fun((gdo@value:db_value()) -> {ok, KUF} | {error, gdo@error:error()})
) -> fun((gdo@row:row()) -> {ok, KUF} | {error, gdo@error:error()}).
column(Name, Value_decoder) ->
fun(Current_row) -> case gdo@row:get(Current_row, Name) of
{ok, Current_value} ->
Value_decoder(Current_value);
{error, Error} ->
{error, Error}
end end.
-file("src/gdo/decode.gleam", 83).
-spec column_at(
integer(),
fun((gdo@value:db_value()) -> {ok, KUI} | {error, gdo@error:error()})
) -> fun((gdo@row:row()) -> {ok, KUI} | {error, gdo@error:error()}).
column_at(Index, Value_decoder) ->
fun(Current_row) -> case gdo@row:get_at(Current_row, Index) of
{ok, Current_value} ->
Value_decoder(Current_value);
{error, Error} ->
{error, Error}
end end.
-file("src/gdo/decode.gleam", 95).
-spec nullable(
fun((gdo@value:db_value()) -> {ok, KUL} | {error, gdo@error:error()})
) -> fun((gdo@value:db_value()) -> {ok, gleam@option:option(KUL)} |
{error, gdo@error:error()}).
nullable(Value_decoder) ->
fun(Current_value) -> case Current_value of
null ->
{ok, none};
_ ->
case Value_decoder(Current_value) of
{ok, Decoded} ->
{ok, {some, Decoded}};
{error, Error} ->
{error, Error}
end
end end.
-file("src/gdo/decode.gleam", 153).
-spec type_error(binary(), gdo@value:db_value()) -> gdo@error:error().
type_error(Expected, Current_value) ->
{decode_error,
<<<<<<"Expected "/utf8, Expected/binary>>/binary, " but found "/utf8>>/binary,
(gdo@value:type_name(Current_value))/binary>>}.
-file("src/gdo/decode.gleam", 108).
-spec int() -> fun((gdo@value:db_value()) -> {ok, integer()} |
{error, gdo@error:error()}).
int() ->
fun(Current_value) -> case Current_value of
{int, Inner} ->
{ok, Inner};
_ ->
{error, type_error(<<"int"/utf8>>, Current_value)}
end end.
-file("src/gdo/decode.gleam", 117).
-spec float() -> fun((gdo@value:db_value()) -> {ok, float()} |
{error, gdo@error:error()}).
float() ->
fun(Current_value) -> case Current_value of
{float, Inner} ->
{ok, Inner};
_ ->
{error, type_error(<<"float"/utf8>>, Current_value)}
end end.
-file("src/gdo/decode.gleam", 126).
-spec bool() -> fun((gdo@value:db_value()) -> {ok, boolean()} |
{error, gdo@error:error()}).
bool() ->
fun(Current_value) -> case Current_value of
{bool, Inner} ->
{ok, Inner};
_ ->
{error, type_error(<<"bool"/utf8>>, Current_value)}
end end.
-file("src/gdo/decode.gleam", 135).
-spec string() -> fun((gdo@value:db_value()) -> {ok, binary()} |
{error, gdo@error:error()}).
string() ->
fun(Current_value) -> case Current_value of
{string, Inner} ->
{ok, Inner};
_ ->
{error, type_error(<<"string"/utf8>>, Current_value)}
end end.
-file("src/gdo/decode.gleam", 144).
-spec bytes() -> fun((gdo@value:db_value()) -> {ok, bitstring()} |
{error, gdo@error:error()}).
bytes() ->
fun(Current_value) -> case Current_value of
{bytes, Inner} ->
{ok, Inner};
_ ->
{error, type_error(<<"bytes"/utf8>>, Current_value)}
end end.