-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.