Current section
Files
Jump to
Current section
Files
src/gleamgen@types.erl
-module(gleamgen@types).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleamgen/types.gleam").
-export([generic/1, raw/1, dynamic/0, reference/1, dynamic_function/2, get_return_type/1, custom_type/3, to_dynamic/1, list/1, tuple1/1, tuple2/2, tuple3/3, tuple4/4, tuple5/5, tuple6/6, tuple7/7, tuple8/8, tuple9/9, result/2, function0/1, function1/2, function2/3, function3/4, function4/5, function5/6, function6/7, function7/8, function8/9, function9/10, coerce_dynamic_unsafe/1, render_type/1]).
-export_type([dynamic_/0, generated_type/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.
-type dynamic_() :: any().
-opaque generated_type(GNR) :: generated_bool |
generated_string |
generated_int |
generated_float |
generated_nil |
generated_bit_array |
{generated_list, generated_type(dynamic_())} |
{generated_tuple, list(generated_type(dynamic_()))} |
{generated_function,
list(generated_type(dynamic_())),
generated_type(dynamic_())} |
dynamic |
{custom_type,
gleam@option:option(binary()),
binary(),
list(generated_type(dynamic_()))} |
{raw, binary()} |
{generic, binary()} |
{gleam_phantom, GNR}.
-file("src/gleamgen/types.gleam", 38).
-spec generic(binary()) -> generated_type(any()).
generic(Name) ->
{generic, Name}.
-file("src/gleamgen/types.gleam", 183).
-spec raw(binary()) -> generated_type(any()).
raw(Name) ->
{raw, Name}.
-file("src/gleamgen/types.gleam", 187).
-spec dynamic() -> generated_type(any()).
dynamic() ->
dynamic.
-file("src/gleamgen/types.gleam", 191).
-spec reference(GRX) -> generated_type(GRX).
reference(_) ->
dynamic.
-file("src/gleamgen/types.gleam", 209).
-spec dynamic_function(
list(generated_type(dynamic_())),
generated_type(dynamic_())
) -> generated_type(dynamic_()).
dynamic_function(Args, Returns) ->
{generated_function, Args, Returns}.
-file("src/gleamgen/types.gleam", 386).
-spec get_return_type(generated_type(any())) -> generated_type(dynamic_()).
get_return_type(Function) ->
case Function of
{generated_function, _, Ret} ->
Ret;
_ ->
dynamic
end.
-file("src/gleamgen/types.gleam", 394).
?DOC(false).
-spec custom_type(
gleam@option:option(binary()),
binary(),
list(generated_type(dynamic_()))
) -> generated_type(any()).
custom_type(Module, Name, Types) ->
{custom_type, Module, Name, Types}.
-file("src/gleamgen/types.gleam", 404).
-spec to_dynamic(generated_type(any())) -> generated_type(dynamic_()).
to_dynamic(Type_) ->
gleamgen_ffi:identity(Type_).
-file("src/gleamgen/types.gleam", 42).
-spec list(generated_type(GNU)) -> generated_type(list(GNU)).
list(Type_) ->
{generated_list,
begin
_pipe = Type_,
gleamgen_ffi:identity(_pipe)
end}.
-file("src/gleamgen/types.gleam", 46).
-spec tuple1(generated_type(GNY)) -> generated_type({GNY}).
tuple1(Type1) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end]}.
-file("src/gleamgen/types.gleam", 50).
-spec tuple2(generated_type(GOB), generated_type(GOD)) -> generated_type({GOB,
GOD}).
tuple2(Type1, Type2) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end]}.
-file("src/gleamgen/types.gleam", 57).
-spec tuple3(generated_type(GOG), generated_type(GOI), generated_type(GOK)) -> generated_type({GOG,
GOI,
GOK}).
tuple3(Type1, Type2, Type3) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end]}.
-file("src/gleamgen/types.gleam", 69).
-spec tuple4(
generated_type(GON),
generated_type(GOP),
generated_type(GOR),
generated_type(GOT)
) -> generated_type({GON, GOP, GOR, GOT}).
tuple4(Type1, Type2, Type3, Type4) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Type4,
gleamgen_ffi:identity(_pipe@3)
end]}.
-file("src/gleamgen/types.gleam", 83).
-spec tuple5(
generated_type(GOW),
generated_type(GOY),
generated_type(GPA),
generated_type(GPC),
generated_type(GPE)
) -> generated_type({GOW, GOY, GPA, GPC, GPE}).
tuple5(Type1, Type2, Type3, Type4, Type5) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Type4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Type5,
gleamgen_ffi:identity(_pipe@4)
end]}.
-file("src/gleamgen/types.gleam", 99).
-spec tuple6(
generated_type(GPH),
generated_type(GPJ),
generated_type(GPL),
generated_type(GPN),
generated_type(GPP),
generated_type(GPR)
) -> generated_type({GPH, GPJ, GPL, GPN, GPP, GPR}).
tuple6(Type1, Type2, Type3, Type4, Type5, Type6) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Type4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Type5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Type6,
gleamgen_ffi:identity(_pipe@5)
end]}.
-file("src/gleamgen/types.gleam", 117).
-spec tuple7(
generated_type(GPU),
generated_type(GPW),
generated_type(GPY),
generated_type(GQA),
generated_type(GQC),
generated_type(GQE),
generated_type(GQG)
) -> generated_type({GPU, GPW, GPY, GQA, GQC, GQE, GQG}).
tuple7(Type1, Type2, Type3, Type4, Type5, Type6, Type7) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Type4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Type5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Type6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Type7,
gleamgen_ffi:identity(_pipe@6)
end]}.
-file("src/gleamgen/types.gleam", 137).
-spec tuple8(
generated_type(GQJ),
generated_type(GQL),
generated_type(GQN),
generated_type(GQP),
generated_type(GQR),
generated_type(GQT),
generated_type(GQV),
generated_type(GQX)
) -> generated_type({GQJ, GQL, GQN, GQP, GQR, GQT, GQV, GQX}).
tuple8(Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Type4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Type5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Type6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Type7,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Type8,
gleamgen_ffi:identity(_pipe@7)
end]}.
-file("src/gleamgen/types.gleam", 159).
-spec tuple9(
generated_type(GRA),
generated_type(GRC),
generated_type(GRE),
generated_type(GRG),
generated_type(GRI),
generated_type(GRK),
generated_type(GRM),
generated_type(GRO),
generated_type(GRQ)
) -> generated_type({GRA, GRC, GRE, GRG, GRI, GRK, GRM, GRO, GRQ}).
tuple9(Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Type3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Type4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Type5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Type6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Type7,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Type8,
gleamgen_ffi:identity(_pipe@7)
end,
begin
_pipe@8 = Type9,
gleamgen_ffi:identity(_pipe@8)
end]}.
-file("src/gleamgen/types.gleam", 195).
-spec result(generated_type(GRZ), generated_type(GSB)) -> generated_type({ok,
GRZ} |
{error, GSB}).
result(Ok_type, Err_type) ->
{custom_type,
none,
<<"Result"/utf8>>,
[begin
_pipe = Ok_type,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Err_type,
gleamgen_ffi:identity(_pipe@1)
end]}.
-file("src/gleamgen/types.gleam", 205).
-spec function0(generated_type(GSG)) -> generated_type(fun(() -> GSG)).
function0(Returns) ->
{generated_function,
[],
begin
_pipe = Returns,
gleamgen_ffi:identity(_pipe)
end}.
-file("src/gleamgen/types.gleam", 216).
-spec function1(generated_type(GSN), generated_type(GSP)) -> generated_type(fun((GSN) -> GSP)).
function1(Arg1, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end],
begin
_pipe@1 = Returns,
gleamgen_ffi:identity(_pipe@1)
end}.
-file("src/gleamgen/types.gleam", 223).
-spec function2(generated_type(GSS), generated_type(GSU), generated_type(GSW)) -> generated_type(fun((GSS, GSU) -> GSW)).
function2(Arg1, Arg2, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end],
begin
_pipe@2 = Returns,
gleamgen_ffi:identity(_pipe@2)
end}.
-file("src/gleamgen/types.gleam", 234).
-spec function3(
generated_type(GSZ),
generated_type(GTB),
generated_type(GTD),
generated_type(GTF)
) -> generated_type(fun((GSZ, GTB, GTD) -> GTF)).
function3(Arg1, Arg2, Arg3, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end],
begin
_pipe@3 = Returns,
gleamgen_ffi:identity(_pipe@3)
end}.
-file("src/gleamgen/types.gleam", 246).
-spec function4(
generated_type(GTI),
generated_type(GTK),
generated_type(GTM),
generated_type(GTO),
generated_type(GTQ)
) -> generated_type(fun((GTI, GTK, GTM, GTO) -> GTQ)).
function4(Arg1, Arg2, Arg3, Arg4, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end],
begin
_pipe@4 = Returns,
gleamgen_ffi:identity(_pipe@4)
end}.
-file("src/gleamgen/types.gleam", 264).
-spec function5(
generated_type(GTT),
generated_type(GTV),
generated_type(GTX),
generated_type(GTZ),
generated_type(GUB),
generated_type(GUD)
) -> generated_type(fun((GTT, GTV, GTX, GTZ, GUB) -> GUD)).
function5(Arg1, Arg2, Arg3, Arg4, Arg5, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end],
begin
_pipe@5 = Returns,
gleamgen_ffi:identity(_pipe@5)
end}.
-file("src/gleamgen/types.gleam", 284).
-spec function6(
generated_type(GUG),
generated_type(GUI),
generated_type(GUK),
generated_type(GUM),
generated_type(GUO),
generated_type(GUQ),
generated_type(GUS)
) -> generated_type(fun((GUG, GUI, GUK, GUM, GUO, GUQ) -> GUS)).
function6(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end],
begin
_pipe@6 = Returns,
gleamgen_ffi:identity(_pipe@6)
end}.
-file("src/gleamgen/types.gleam", 306).
-spec function7(
generated_type(GUV),
generated_type(GUX),
generated_type(GUZ),
generated_type(GVB),
generated_type(GVD),
generated_type(GVF),
generated_type(GVH),
generated_type(GVJ)
) -> generated_type(fun((GUV, GUX, GUZ, GVB, GVD, GVF, GVH) -> GVJ)).
function7(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg7,
gleamgen_ffi:identity(_pipe@6)
end],
begin
_pipe@7 = Returns,
gleamgen_ffi:identity(_pipe@7)
end}.
-file("src/gleamgen/types.gleam", 330).
-spec function8(
generated_type(GVM),
generated_type(GVO),
generated_type(GVQ),
generated_type(GVS),
generated_type(GVU),
generated_type(GVW),
generated_type(GVY),
generated_type(GWA),
generated_type(GWC)
) -> generated_type(fun((GVM, GVO, GVQ, GVS, GVU, GVW, GVY, GWA) -> GWC)).
function8(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg7,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg8,
gleamgen_ffi:identity(_pipe@7)
end],
begin
_pipe@8 = Returns,
gleamgen_ffi:identity(_pipe@8)
end}.
-file("src/gleamgen/types.gleam", 356).
-spec function9(
generated_type(GWF),
generated_type(GWH),
generated_type(GWJ),
generated_type(GWL),
generated_type(GWN),
generated_type(GWP),
generated_type(GWR),
generated_type(GWT),
generated_type(GWV),
generated_type(GWX)
) -> generated_type(fun((GWF, GWH, GWJ, GWL, GWN, GWP, GWR, GWT, GWV) -> GWX)).
function9(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Arg2,
gleamgen_ffi:identity(_pipe@1)
end,
begin
_pipe@2 = Arg3,
gleamgen_ffi:identity(_pipe@2)
end,
begin
_pipe@3 = Arg4,
gleamgen_ffi:identity(_pipe@3)
end,
begin
_pipe@4 = Arg5,
gleamgen_ffi:identity(_pipe@4)
end,
begin
_pipe@5 = Arg6,
gleamgen_ffi:identity(_pipe@5)
end,
begin
_pipe@6 = Arg7,
gleamgen_ffi:identity(_pipe@6)
end,
begin
_pipe@7 = Arg8,
gleamgen_ffi:identity(_pipe@7)
end,
begin
_pipe@8 = Arg9,
gleamgen_ffi:identity(_pipe@8)
end],
begin
_pipe@9 = Returns,
gleamgen_ffi:identity(_pipe@9)
end}.
-file("src/gleamgen/types.gleam", 408).
-spec coerce_dynamic_unsafe(generated_type(dynamic_())) -> generated_type(any()).
coerce_dynamic_unsafe(Type_) ->
gleamgen_ffi:identity(Type_).
-file("src/gleamgen/types.gleam", 459).
-spec render_type_list(list(generated_type(dynamic_()))) -> {ok,
{list(glam@doc:document()), gleamgen@internal@render:rendered_details()}} |
{error, nil}.
render_type_list(Types) ->
Possibly_rendered = begin
_pipe = Types,
gleam@list:try_fold(
_pipe,
{[], {rendered_details, [], {report, [], []}}},
fun(Acc, T) -> _pipe@1 = render_type(T),
gleam@result:map(
_pipe@1,
fun(Rendered) ->
{[erlang:element(2, Rendered) | erlang:element(1, Acc)],
gleamgen@internal@render:merge_details(
erlang:element(3, Rendered),
erlang:element(2, Acc)
)}
end
) end
)
end,
_pipe@2 = Possibly_rendered,
gleam@result:map(
_pipe@2,
fun(R) ->
{begin
_pipe@3 = erlang:element(1, R),
lists:reverse(_pipe@3)
end,
erlang:element(2, R)}
end
).
-file("src/gleamgen/types.gleam", 410).
-spec render_type(generated_type(any())) -> {ok,
gleamgen@internal@render:rendered()} |
{error, nil}.
render_type(Type_) ->
case Type_ of
generated_bool ->
_pipe = glam@doc:from_string(<<"Bool"/utf8>>),
_pipe@1 = {render, _pipe, {rendered_details, [], {report, [], []}}},
{ok, _pipe@1};
generated_string ->
_pipe@2 = glam@doc:from_string(<<"String"/utf8>>),
_pipe@3 = {render,
_pipe@2,
{rendered_details, [], {report, [], []}}},
{ok, _pipe@3};
generated_int ->
_pipe@4 = glam@doc:from_string(<<"Int"/utf8>>),
_pipe@5 = {render,
_pipe@4,
{rendered_details, [], {report, [], []}}},
{ok, _pipe@5};
generated_float ->
_pipe@6 = glam@doc:from_string(<<"Float"/utf8>>),
_pipe@7 = {render,
_pipe@6,
{rendered_details, [], {report, [], []}}},
{ok, _pipe@7};
generated_nil ->
_pipe@8 = glam@doc:from_string(<<"Nil"/utf8>>),
_pipe@9 = {render,
_pipe@8,
{rendered_details, [], {report, [], []}}},
{ok, _pipe@9};
generated_bit_array ->
_pipe@10 = glam@doc:from_string(<<"BitArray"/utf8>>),
_pipe@11 = {render,
_pipe@10,
{rendered_details, [], {report, [], []}}},
{ok, _pipe@11};
{generated_list, T} ->
render_custom(none, <<"List"/utf8>>, [T]);
{generated_tuple, T@1} ->
render_tuple(T@1);
{custom_type, Module, Name, Types} ->
render_custom(Module, Name, Types);
dynamic ->
{error, nil};
{raw, T@2} ->
Used_imports = case gleam@string:split_once(T@2, <<"."/utf8>>) of
{ok, {Module@1, _}} ->
[Module@1];
{error, nil} ->
[]
end,
_pipe@12 = glam@doc:from_string(T@2),
_pipe@13 = {render,
_pipe@12,
begin
_record = {rendered_details, [], {report, [], []}},
{rendered_details, Used_imports, erlang:element(3, _record)}
end},
{ok, _pipe@13};
{generic, T@3} ->
_pipe@14 = glam@doc:from_string(T@3),
_pipe@15 = {render,
_pipe@14,
{rendered_details, [], {report, [], []}}},
{ok, _pipe@15};
{generated_function, Args, Return} ->
render_function(Args, Return)
end.
-file("src/gleamgen/types.gleam", 508).
-spec render_function(
list(generated_type(dynamic_())),
generated_type(dynamic_())
) -> {ok, gleamgen@internal@render:rendered()} | {error, nil}.
render_function(Args, Return) ->
Rendered = render_type_list(Args),
gleam@result:'try'(
Rendered,
fun(_use0) ->
{Rendered_types, Details} = _use0,
Return@1 = render_type(Return),
Details@1 = case Return@1 of
{ok, Ret} ->
gleamgen@internal@render:merge_details(
erlang:element(3, Ret),
Details
);
{error, nil} ->
Details
end,
_pipe = glam@doc:concat(
[glam@doc:from_string(<<"fn"/utf8>>),
gleamgen@internal@render:pretty_list(Rendered_types),
{break, <<" "/utf8>>, <<""/utf8>>},
case Return@1 of
{ok, Ret@1} ->
glam@doc:concat(
[glam@doc:from_string(<<"->"/utf8>>),
{break, <<" "/utf8>>, <<""/utf8>>},
erlang:element(2, Ret@1)]
);
{error, _} ->
{concat, []}
end]
),
_pipe@1 = {render, _pipe, Details@1},
{ok, _pipe@1}
end
).
-file("src/gleamgen/types.gleam", 474).
-spec render_custom(
gleam@option:option(binary()),
binary(),
list(generated_type(dynamic_()))
) -> {ok, gleamgen@internal@render:rendered()} | {error, nil}.
render_custom(Module, Name, Types) ->
Rendered = render_type_list(Types),
gleam@result:'try'(
Rendered,
fun(_use0) ->
{Rendered_types, Details} = _use0,
{Used_imports, Import_doc} = case Module of
{some, M} ->
{[M | erlang:element(2, Details)],
glam@doc:from_string(<<M/binary, "."/utf8>>)};
none ->
{erlang:element(2, Details), {concat, []}}
end,
_pipe = Import_doc,
_pipe@1 = glam@doc:append(_pipe, glam@doc:from_string(Name)),
_pipe@2 = glam@doc:append(_pipe@1, case Types of
[] ->
{concat, []};
_ ->
gleamgen@internal@render:pretty_list(Rendered_types)
end),
_pipe@3 = {render,
_pipe@2,
{rendered_details, Used_imports, erlang:element(3, Details)}},
{ok, _pipe@3}
end
).
-file("src/gleamgen/types.gleam", 497).
-spec render_tuple(list(generated_type(dynamic_()))) -> {ok,
gleamgen@internal@render:rendered()} |
{error, nil}.
render_tuple(Types) ->
Rendered = render_type_list(Types),
gleam@result:'try'(
Rendered,
fun(_use0) ->
{Rendered_types, Details} = _use0,
_pipe = glam@doc:from_string(<<"#"/utf8>>),
_pipe@1 = glam@doc:append(
_pipe,
gleamgen@internal@render:pretty_list(Rendered_types)
),
_pipe@2 = {render, _pipe@1, Details},
{ok, _pipe@2}
end
).