Current section
Files
Jump to
Current section
Files
src/json@blueprint.erl
-module(json@blueprint).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([generate_json_schema/1, self_decoder/1, get_dynamic_decoder/1, decode/2, string/0, int/0, float/0, bool/0, list/1, reuse_decoder/1, field/2, optional/1, optional_field/2, encode_optional_field/4, union_type_encoder/2, union_type_decoder/1, enum_type_encoder/2, enum_type_decoder/1, map/2, tuple2/2, tuple3/3, tuple4/4, tuple5/5, tuple6/6, decode0/1, decode1/2, decode2/3, decode3/4, decode4/5, decode5/6, decode6/7, decode7/8, decode8/9, decode9/10, encode_tuple2/3, encode_tuple3/4, encode_tuple4/5, encode_tuple5/6, encode_tuple6/7, encode_tuple7/8, encode_tuple8/9, encode_tuple9/10]).
-export_type([decoder/1, field_decoder/1]).
-type decoder(GLM) :: {decoder,
fun((gleam@dynamic:dynamic_()) -> {ok, GLM} |
{error, list(gleam@dynamic:decode_error())}),
json@blueprint@schema:schema_definition(),
list({binary(), json@blueprint@schema:schema_definition()})}.
-type field_decoder(GLN) :: {field_decoder,
fun((gleam@dynamic:dynamic_()) -> {ok, GLN} |
{error, list(gleam@dynamic:decode_error())}),
{binary(), json@blueprint@schema:schema_definition()},
list({binary(), json@blueprint@schema:schema_definition()})}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 28).
-spec generate_json_schema(decoder(any())) -> gleam@json:json().
generate_json_schema(Decoder) ->
Refs = case erlang:element(4, Decoder) of
[] ->
none;
Xs ->
{some, Xs}
end,
json@blueprint@schema:to_json(
json@blueprint@schema:new_schema(erlang:element(3, Decoder), Refs)
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 128).
-spec self_decoder(fun(() -> decoder(GLV))) -> decoder(GLV).
self_decoder(Lazy) ->
{decoder,
fun(Input) -> (erlang:element(2, Lazy()))(Input) end,
{ref, <<"#"/utf8>>},
[]}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 132).
-spec get_dynamic_decoder(decoder(GLY)) -> fun((gleam@dynamic:dynamic_()) -> {ok,
GLY} |
{error, list(gleam@dynamic:decode_error())}).
get_dynamic_decoder(Decoder) ->
erlang:element(2, Decoder).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 136).
-spec decode(decoder(GMB), binary()) -> {ok, GMB} |
{error, gleam@json:decode_error()}.
decode(Decoder, Json_string) ->
gleam@json:decode(Json_string, erlang:element(2, Decoder)).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 143).
-spec string() -> decoder(binary()).
string() ->
{decoder, fun gleam@dynamic:string/1, {type, string_type}, []}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 147).
-spec int() -> decoder(integer()).
int() ->
{decoder, fun gleam@dynamic:int/1, {type, integer_type}, []}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 151).
-spec float() -> decoder(float()).
float() ->
{decoder, fun gleam@dynamic:float/1, {type, number_type}, []}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 155).
-spec bool() -> decoder(boolean()).
bool() ->
{decoder, fun gleam@dynamic:bool/1, {type, boolean_type}, []}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 159).
-spec list(decoder(GMJ)) -> decoder(list(GMJ)).
list(Decoder_type) ->
{decoder,
gleam@dynamic:list(erlang:element(2, Decoder_type)),
{array, {some, erlang:element(3, Decoder_type)}},
erlang:element(4, Decoder_type)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 71).
-spec reuse_decoder(decoder(GLS)) -> decoder(GLS).
reuse_decoder(Decoder) ->
Def_name = <<"ref_"/utf8,
(json@blueprint@schema:hash_schema_definition(
erlang:element(3, Decoder)
))/binary>>,
Ref_name = <<"#/$defs/"/utf8, Def_name/binary>>,
Schema_with_rebased_self_refs = json@blueprint@schema:map_ref(
erlang:element(3, Decoder),
fun(Original_ref_name) -> case Original_ref_name of
<<"#"/utf8>> ->
Ref_name;
X ->
X
end end
),
{decoder,
erlang:element(2, Decoder),
{ref, Ref_name},
begin
_pipe = erlang:element(4, Decoder),
gleam@list:prepend(_pipe, {Def_name, Schema_with_rebased_self_refs})
end}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 167).
-spec field(binary(), decoder(GMN)) -> field_decoder(GMN).
field(Name, Inner_type) ->
{field_decoder,
gleam@dynamic:field(Name, erlang:element(2, Inner_type)),
{Name, erlang:element(3, Inner_type)},
erlang:element(4, Inner_type)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 197).
-spec optional(decoder(GMQ)) -> decoder(gleam@option:option(GMQ)).
optional(Decode) ->
{decoder,
gleam@dynamic:optional(erlang:element(2, Decode)),
{nullable, erlang:element(3, Decode)},
erlang:element(4, Decode)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 233).
-spec optional_field(binary(), decoder(GMU)) -> field_decoder(gleam@option:option(GMU)).
optional_field(Name, Inner_type) ->
{field_decoder,
fun(Value) ->
_pipe = (gleam@dynamic:optional_field(
Name,
fun(Dyn) -> case Dyn =:= json_blueprint_ffi:null() of
false ->
gleam@result:map(
(erlang:element(2, Inner_type))(Dyn),
fun(Field@0) -> {some, Field@0} end
);
true ->
{ok, none}
end end
))(Value),
gleam@result:map(_pipe, fun gleam@option:flatten/1)
end,
{Name, {optional, erlang:element(3, Inner_type)}},
erlang:element(4, Inner_type)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 295).
-spec encode_optional_field(
list({binary(), gleam@json:json()}),
binary(),
gleam@option:option(GMZ),
fun((GMZ) -> gleam@json:json())
) -> list({binary(), gleam@json:json()}).
encode_optional_field(Fields, Name, Value, Encode_fn) ->
case Value of
{some, Left} ->
gleam@list:prepend(Fields, {Name, Encode_fn(Left)});
none ->
Fields
end.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 335).
-spec union_type_encoder(GNC, fun((GNC) -> {binary(), gleam@json:json()})) -> gleam@json:json().
union_type_encoder(Of, Encoder_fn) ->
{Field_name, Json_value} = Encoder_fn(Of),
gleam@json:object(
[{<<"type"/utf8>>, gleam@json:string(Field_name)},
{<<"data"/utf8>>, Json_value}]
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 365).
-spec union_type_decoder(list({binary(), decoder(GND)})) -> decoder(GND).
union_type_decoder(Decoders) ->
Constructor = fun(Type_str, Data) -> _pipe = Decoders,
_pipe@1 = gleam@list:find_map(
_pipe,
fun(Dec) -> case erlang:element(1, Dec) =:= Type_str of
true ->
{ok,
(erlang:element(2, (erlang:element(2, Dec))))(Data)};
_ ->
{error, []}
end end
),
_pipe@4 = gleam@result:map_error(
_pipe@1,
fun(_) ->
Valid_types = begin
_pipe@2 = Decoders,
_pipe@3 = gleam@list:map(
_pipe@2,
fun(Dec@1) -> erlang:element(1, Dec@1) end
),
gleam@string:join(_pipe@3, <<", "/utf8>>)
end,
[{decode_error,
<<"valid constructor type, one of: "/utf8,
Valid_types/binary>>,
Type_str,
[]}]
end
),
gleam@result:flatten(_pipe@4) end,
Enum_decoder = fun(Data@1) ->
_pipe@5 = (gleam@dynamic:decode2(
Constructor,
gleam@dynamic:field(<<"type"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"data"/utf8>>, fun gleam@dynamic:dynamic/1)
))(Data@1),
gleam@result:flatten(_pipe@5)
end,
Schema = case Decoders of
[] ->
{object, [], {some, false}, none};
[{Name, Dec@2}] ->
{object,
[{<<"type"/utf8>>,
{enum, [gleam@json:string(Name)], {some, string_type}}},
{<<"data"/utf8>>, erlang:element(3, Dec@2)}],
{some, false},
{some, [<<"type"/utf8>>, <<"data"/utf8>>]}};
Xs ->
_pipe@6 = gleam@list:map(
Xs,
fun(Field_dec) ->
{Name@1, Dec@3} = Field_dec,
{object,
[{<<"type"/utf8>>,
{enum,
[gleam@json:string(Name@1)],
{some, string_type}}},
{<<"data"/utf8>>, erlang:element(3, Dec@3)}],
{some, false},
{some, [<<"type"/utf8>>, <<"data"/utf8>>]}}
end
),
{any_of, _pipe@6}
end,
Defs = gleam@list:flat_map(
Decoders,
fun(Dec@4) -> erlang:element(4, (erlang:element(2, Dec@4))) end
),
{decoder, Enum_decoder, Schema, Defs}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 461).
-spec enum_type_encoder(GNH, fun((GNH) -> binary())) -> gleam@json:json().
enum_type_encoder(Of, Encoder_fn) ->
Field_name = Encoder_fn(Of),
gleam@json:object([{<<"enum"/utf8>>, gleam@json:string(Field_name)}]).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 490).
-spec enum_type_decoder(list({binary(), GNI})) -> decoder(GNI).
enum_type_decoder(Decoders) ->
Constructor = fun(Type_str) -> _pipe = Decoders,
_pipe@1 = gleam@list:find_map(
_pipe,
fun(Dec) -> case erlang:element(1, Dec) =:= Type_str of
true ->
{ok, erlang:element(2, Dec)};
_ ->
{error, []}
end end
),
gleam@result:map_error(
_pipe@1,
fun(_) ->
Valid_types = begin
_pipe@2 = Decoders,
_pipe@3 = gleam@list:map(
_pipe@2,
fun(Dec@1) -> erlang:element(1, Dec@1) end
),
gleam@string:join(_pipe@3, <<", "/utf8>>)
end,
[{decode_error,
<<"valid constructor type, one of: "/utf8,
Valid_types/binary>>,
Type_str,
[]}]
end
) end,
Enum_decoder = fun(Data) ->
_pipe@4 = (gleam@dynamic:decode1(
Constructor,
gleam@dynamic:field(<<"enum"/utf8>>, fun gleam@dynamic:string/1)
))(Data),
gleam@result:flatten(_pipe@4)
end,
{decoder,
Enum_decoder,
begin
_pipe@5 = gleam@list:map(
Decoders,
fun(Field_dec) ->
gleam@json:string(erlang:element(1, Field_dec))
end
),
_pipe@6 = (fun(Enum_values) ->
[{<<"enum"/utf8>>, {enum, Enum_values, {some, string_type}}}]
end)(_pipe@5),
{object, _pipe@6, {some, false}, {some, [<<"enum"/utf8>>]}}
end,
[]}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 533).
-spec map(decoder(GNL), fun((GNL) -> GNN)) -> decoder(GNN).
map(Decoder, Foo) ->
{decoder,
fun(Input) ->
gleam@result:map((erlang:element(2, Decoder))(Input), Foo)
end,
erlang:element(3, Decoder),
erlang:element(4, Decoder)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 541).
-spec tuple2(decoder(GNP), decoder(GNR)) -> decoder({GNP, GNR}).
tuple2(Decode1, Decode2) ->
{decoder,
gleam@dynamic:tuple2(
erlang:element(2, Decode1),
erlang:element(2, Decode2)
),
{detailed_array,
none,
{some, [erlang:element(3, Decode1), erlang:element(3, Decode2)]},
{some, 2},
{some, 2},
none,
none,
none,
none},
lists:append(erlang:element(4, Decode1), erlang:element(4, Decode2))}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 561).
-spec tuple3(decoder(GNU), decoder(GNW), decoder(GNY)) -> decoder({GNU,
GNW,
GNY}).
tuple3(Decode1, Decode2, Decode3) ->
{decoder,
gleam@dynamic:tuple3(
erlang:element(2, Decode1),
erlang:element(2, Decode2),
erlang:element(2, Decode3)
),
{detailed_array,
none,
{some,
[erlang:element(3, Decode1),
erlang:element(3, Decode2),
erlang:element(3, Decode3)]},
{some, 3},
{some, 3},
none,
none,
none,
none},
gleam@list:concat(
[erlang:element(4, Decode1),
erlang:element(4, Decode2),
erlang:element(4, Decode3)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 586).
-spec tuple4(decoder(GOB), decoder(GOD), decoder(GOF), decoder(GOH)) -> decoder({GOB,
GOD,
GOF,
GOH}).
tuple4(Decode1, Decode2, Decode3, Decode4) ->
{decoder,
gleam@dynamic:tuple4(
erlang:element(2, Decode1),
erlang:element(2, Decode2),
erlang:element(2, Decode3),
erlang:element(2, Decode4)
),
{detailed_array,
none,
{some,
[erlang:element(3, Decode1),
erlang:element(3, Decode2),
erlang:element(3, Decode3),
erlang:element(3, Decode4)]},
{some, 4},
{some, 4},
none,
none,
none,
none},
gleam@list:concat(
[erlang:element(4, Decode1),
erlang:element(4, Decode2),
erlang:element(4, Decode3),
erlang:element(4, Decode4)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 613).
-spec tuple5(
decoder(GOK),
decoder(GOM),
decoder(GOO),
decoder(GOQ),
decoder(GOS)
) -> decoder({GOK, GOM, GOO, GOQ, GOS}).
tuple5(Decode1, Decode2, Decode3, Decode4, Decode5) ->
{decoder,
gleam@dynamic:tuple5(
erlang:element(2, Decode1),
erlang:element(2, Decode2),
erlang:element(2, Decode3),
erlang:element(2, Decode4),
erlang:element(2, Decode5)
),
{detailed_array,
none,
{some,
[erlang:element(3, Decode1),
erlang:element(3, Decode2),
erlang:element(3, Decode3),
erlang:element(3, Decode4),
erlang:element(3, Decode5)]},
{some, 5},
{some, 5},
none,
none,
none,
none},
gleam@list:concat(
[erlang:element(4, Decode1),
erlang:element(4, Decode2),
erlang:element(4, Decode3),
erlang:element(4, Decode4),
erlang:element(4, Decode5)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 654).
-spec tuple6(
decoder(GOV),
decoder(GOX),
decoder(GOZ),
decoder(GPB),
decoder(GPD),
decoder(GPF)
) -> decoder({GOV, GOX, GOZ, GPB, GPD, GPF}).
tuple6(Decode1, Decode2, Decode3, Decode4, Decode5, Decode6) ->
{decoder,
gleam@dynamic:tuple6(
erlang:element(2, Decode1),
erlang:element(2, Decode2),
erlang:element(2, Decode3),
erlang:element(2, Decode4),
erlang:element(2, Decode5),
erlang:element(2, Decode6)
),
{detailed_array,
none,
{some,
[erlang:element(3, Decode1),
erlang:element(3, Decode2),
erlang:element(3, Decode3),
erlang:element(3, Decode4),
erlang:element(3, Decode5),
erlang:element(3, Decode6)]},
{some, 6},
{some, 6},
none,
none,
none,
none},
gleam@list:concat(
[erlang:element(4, Decode1),
erlang:element(4, Decode2),
erlang:element(4, Decode3),
erlang:element(4, Decode4),
erlang:element(4, Decode5),
erlang:element(4, Decode6)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 699).
-spec create_object_schema(
list({binary(), json@blueprint@schema:schema_definition()})
) -> json@blueprint@schema:schema_definition().
create_object_schema(Fields) ->
{object,
Fields,
{some, false},
{some, gleam@list:filter_map(Fields, fun(Field_dec) -> case Field_dec of
{_, {optional, _}} ->
{error, nil};
{Name, _} ->
{ok, Name}
end end)}}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 716).
-spec decode0(GPJ) -> decoder(GPJ).
decode0(Constructor) ->
{decoder,
fun(_) -> {ok, Constructor} end,
{object, [], {some, false}, none},
[]}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 743).
-spec decode1(fun((GPL) -> GPM), field_decoder(GPL)) -> decoder(GPM).
decode1(Constructor, T1) ->
{decoder,
gleam@dynamic:decode1(Constructor, erlang:element(2, T1)),
create_object_schema([erlang:element(3, T1)]),
erlang:element(4, T1)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 751).
-spec decode2(fun((GPP, GPQ) -> GPR), field_decoder(GPP), field_decoder(GPQ)) -> decoder(GPR).
decode2(Constructor, T1, T2) ->
{decoder,
gleam@dynamic:decode2(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2)
),
create_object_schema([erlang:element(3, T1), erlang:element(3, T2)]),
gleam@list:concat([erlang:element(4, T1), erlang:element(4, T2)])}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 763).
-spec decode3(
fun((GPV, GPW, GPX) -> GPY),
field_decoder(GPV),
field_decoder(GPW),
field_decoder(GPX)
) -> decoder(GPY).
decode3(Constructor, T1, T2, T3) ->
{decoder,
gleam@dynamic:decode3(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 776).
-spec decode4(
fun((GQD, GQE, GQF, GQG) -> GQH),
field_decoder(GQD),
field_decoder(GQE),
field_decoder(GQF),
field_decoder(GQG)
) -> decoder(GQH).
decode4(Constructor, T1, T2, T3, T4) ->
{decoder,
gleam@dynamic:decode4(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3),
erlang:element(2, T4)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3),
erlang:element(3, T4)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3),
erlang:element(4, T4)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 801).
-spec decode5(
fun((GQN, GQO, GQP, GQQ, GQR) -> GQS),
field_decoder(GQN),
field_decoder(GQO),
field_decoder(GQP),
field_decoder(GQQ),
field_decoder(GQR)
) -> decoder(GQS).
decode5(Constructor, T1, T2, T3, T4, T5) ->
{decoder,
gleam@dynamic:decode5(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3),
erlang:element(2, T4),
erlang:element(2, T5)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3),
erlang:element(3, T4),
erlang:element(3, T5)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3),
erlang:element(4, T4),
erlang:element(4, T5)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 829).
-spec decode6(
fun((GQZ, GRA, GRB, GRC, GRD, GRE) -> GRF),
field_decoder(GQZ),
field_decoder(GRA),
field_decoder(GRB),
field_decoder(GRC),
field_decoder(GRD),
field_decoder(GRE)
) -> decoder(GRF).
decode6(Constructor, T1, T2, T3, T4, T5, T6) ->
{decoder,
gleam@dynamic:decode6(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3),
erlang:element(2, T4),
erlang:element(2, T5),
erlang:element(2, T6)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3),
erlang:element(3, T4),
erlang:element(3, T5),
erlang:element(3, T6)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3),
erlang:element(4, T4),
erlang:element(4, T5),
erlang:element(4, T6)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 860).
-spec decode7(
fun((GRN, GRO, GRP, GRQ, GRR, GRS, GRT) -> GRU),
field_decoder(GRN),
field_decoder(GRO),
field_decoder(GRP),
field_decoder(GRQ),
field_decoder(GRR),
field_decoder(GRS),
field_decoder(GRT)
) -> decoder(GRU).
decode7(Constructor, T1, T2, T3, T4, T5, T6, T7) ->
{decoder,
gleam@dynamic:decode7(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3),
erlang:element(2, T4),
erlang:element(2, T5),
erlang:element(2, T6),
erlang:element(2, T7)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3),
erlang:element(3, T4),
erlang:element(3, T5),
erlang:element(3, T6),
erlang:element(3, T7)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3),
erlang:element(4, T4),
erlang:element(4, T5),
erlang:element(4, T6),
erlang:element(4, T7)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 894).
-spec decode8(
fun((GSD, GSE, GSF, GSG, GSH, GSI, GSJ, GSK) -> GSL),
field_decoder(GSD),
field_decoder(GSE),
field_decoder(GSF),
field_decoder(GSG),
field_decoder(GSH),
field_decoder(GSI),
field_decoder(GSJ),
field_decoder(GSK)
) -> decoder(GSL).
decode8(Constructor, T1, T2, T3, T4, T5, T6, T7, T8) ->
{decoder,
gleam@dynamic:decode8(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3),
erlang:element(2, T4),
erlang:element(2, T5),
erlang:element(2, T6),
erlang:element(2, T7),
erlang:element(2, T8)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3),
erlang:element(3, T4),
erlang:element(3, T5),
erlang:element(3, T6),
erlang:element(3, T7),
erlang:element(3, T8)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3),
erlang:element(4, T4),
erlang:element(4, T5),
erlang:element(4, T6),
erlang:element(4, T7),
erlang:element(4, T8)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 940).
-spec decode9(
fun((GSV, GSW, GSX, GSY, GSZ, GTA, GTB, GTC, GTD) -> GTE),
field_decoder(GSV),
field_decoder(GSW),
field_decoder(GSX),
field_decoder(GSY),
field_decoder(GSZ),
field_decoder(GTA),
field_decoder(GTB),
field_decoder(GTC),
field_decoder(GTD)
) -> decoder(GTE).
decode9(Constructor, T1, T2, T3, T4, T5, T6, T7, T8, T9) ->
{decoder,
gleam@dynamic:decode9(
Constructor,
erlang:element(2, T1),
erlang:element(2, T2),
erlang:element(2, T3),
erlang:element(2, T4),
erlang:element(2, T5),
erlang:element(2, T6),
erlang:element(2, T7),
erlang:element(2, T8),
erlang:element(2, T9)
),
create_object_schema(
[erlang:element(3, T1),
erlang:element(3, T2),
erlang:element(3, T3),
erlang:element(3, T4),
erlang:element(3, T5),
erlang:element(3, T6),
erlang:element(3, T7),
erlang:element(3, T8),
erlang:element(3, T9)]
),
gleam@list:concat(
[erlang:element(4, T1),
erlang:element(4, T2),
erlang:element(4, T3),
erlang:element(4, T4),
erlang:element(4, T5),
erlang:element(4, T6),
erlang:element(4, T7),
erlang:element(4, T8),
erlang:element(4, T9)]
)}.
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 990).
-spec encode_tuple2(
{GTP, GTQ},
fun((GTP) -> gleam@json:json()),
fun((GTQ) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple2(Tuple, Encode1, Encode2) ->
{T1, T2} = Tuple,
gleam@json:preprocessed_array([Encode1(T1), Encode2(T2)]).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 999).
-spec encode_tuple3(
{GTR, GTS, GTT},
fun((GTR) -> gleam@json:json()),
fun((GTS) -> gleam@json:json()),
fun((GTT) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple3(Tuple, Encode1, Encode2, Encode3) ->
{T1, T2, T3} = Tuple,
gleam@json:preprocessed_array([Encode1(T1), Encode2(T2), Encode3(T3)]).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 1009).
-spec encode_tuple4(
{GTU, GTV, GTW, GTX},
fun((GTU) -> gleam@json:json()),
fun((GTV) -> gleam@json:json()),
fun((GTW) -> gleam@json:json()),
fun((GTX) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple4(Tuple, Encode1, Encode2, Encode3, Encode4) ->
{T1, T2, T3, T4} = Tuple,
gleam@json:preprocessed_array(
[Encode1(T1), Encode2(T2), Encode3(T3), Encode4(T4)]
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 1020).
-spec encode_tuple5(
{GTY, GTZ, GUA, GUB, GUC},
fun((GTY) -> gleam@json:json()),
fun((GTZ) -> gleam@json:json()),
fun((GUA) -> gleam@json:json()),
fun((GUB) -> gleam@json:json()),
fun((GUC) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple5(Tuple, Encode1, Encode2, Encode3, Encode4, Encode5) ->
{T1, T2, T3, T4, T5} = Tuple,
gleam@json:preprocessed_array(
[Encode1(T1), Encode2(T2), Encode3(T3), Encode4(T4), Encode5(T5)]
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 1038).
-spec encode_tuple6(
{GUD, GUE, GUF, GUG, GUH, GUI},
fun((GUD) -> gleam@json:json()),
fun((GUE) -> gleam@json:json()),
fun((GUF) -> gleam@json:json()),
fun((GUG) -> gleam@json:json()),
fun((GUH) -> gleam@json:json()),
fun((GUI) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple6(Tuple, Encode1, Encode2, Encode3, Encode4, Encode5, Encode6) ->
{T1, T2, T3, T4, T5, T6} = Tuple,
gleam@json:preprocessed_array(
[Encode1(T1),
Encode2(T2),
Encode3(T3),
Encode4(T4),
Encode5(T5),
Encode6(T6)]
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 1058).
-spec encode_tuple7(
{GUJ, GUK, GUL, GUM, GUN, GUO, GUP},
fun((GUJ) -> gleam@json:json()),
fun((GUK) -> gleam@json:json()),
fun((GUL) -> gleam@json:json()),
fun((GUM) -> gleam@json:json()),
fun((GUN) -> gleam@json:json()),
fun((GUO) -> gleam@json:json()),
fun((GUP) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple7(
Tuple,
Encode1,
Encode2,
Encode3,
Encode4,
Encode5,
Encode6,
Encode7
) ->
{T1, T2, T3, T4, T5, T6, T7} = Tuple,
gleam@json:preprocessed_array(
[Encode1(T1),
Encode2(T2),
Encode3(T3),
Encode4(T4),
Encode5(T5),
Encode6(T6),
Encode7(T7)]
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 1080).
-spec encode_tuple8(
{GUQ, GUR, GUS, GUT, GUU, GUV, GUW, GUX},
fun((GUQ) -> gleam@json:json()),
fun((GUR) -> gleam@json:json()),
fun((GUS) -> gleam@json:json()),
fun((GUT) -> gleam@json:json()),
fun((GUU) -> gleam@json:json()),
fun((GUV) -> gleam@json:json()),
fun((GUW) -> gleam@json:json()),
fun((GUX) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple8(
Tuple,
Encode1,
Encode2,
Encode3,
Encode4,
Encode5,
Encode6,
Encode7,
Encode8
) ->
{T1, T2, T3, T4, T5, T6, T7, T8} = Tuple,
gleam@json:preprocessed_array(
[Encode1(T1),
Encode2(T2),
Encode3(T3),
Encode4(T4),
Encode5(T5),
Encode6(T6),
Encode7(T7),
Encode8(T8)]
).
-file("/code/edgar/gleamplay/src/json/blueprint.gleam", 1104).
-spec encode_tuple9(
{GUY, GUZ, GVA, GVB, GVC, GVD, GVE, GVF, GVG},
fun((GUY) -> gleam@json:json()),
fun((GUZ) -> gleam@json:json()),
fun((GVA) -> gleam@json:json()),
fun((GVB) -> gleam@json:json()),
fun((GVC) -> gleam@json:json()),
fun((GVD) -> gleam@json:json()),
fun((GVE) -> gleam@json:json()),
fun((GVF) -> gleam@json:json()),
fun((GVG) -> gleam@json:json())
) -> gleam@json:json().
encode_tuple9(
Tuple,
Encode1,
Encode2,
Encode3,
Encode4,
Encode5,
Encode6,
Encode7,
Encode8,
Encode9
) ->
{T1, T2, T3, T4, T5, T6, T7, T8, T9} = Tuple,
gleam@json:preprocessed_array(
[Encode1(T1),
Encode2(T2),
Encode3(T3),
Encode4(T4),
Encode5(T5),
Encode6(T6),
Encode7(T7),
Encode8(T8),
Encode9(T9)]
).