Current section

Files

Jump to
gleamgen src gleamgen@types.erl
Raw

src/gleamgen@types.erl

-module(gleamgen@types).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([generic/1, unchecked_ident/1, unchecked/0, get_return_type/1, custom_type/3, to_unchecked/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, unsafe_from_unchecked/1, render_type/1]).
-export_type([unchecked/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 unchecked() :: any().
-opaque generated_type(GFX) :: generated_bool |
generated_string |
generated_int |
generated_float |
generated_nil |
{generated_list, generated_type(unchecked())} |
{generated_tuple, list(generated_type(unchecked()))} |
{generated_function,
list(generated_type(unchecked())),
generated_type(unchecked())} |
unchecked |
{custom_type,
gleam@option:option(binary()),
binary(),
list(generated_type(unchecked()))} |
{unchecked_ident, binary()} |
{generic, binary()} |
{gleam_phantom, GFX}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 35).
-spec generic(binary()) -> generated_type(any()).
generic(Name) ->
{generic, Name}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 180).
-spec unchecked_ident(binary()) -> generated_type(any()).
unchecked_ident(Name) ->
{unchecked_ident, Name}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 184).
-spec unchecked() -> generated_type(any()).
unchecked() ->
unchecked.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 372).
-spec get_return_type(generated_type(any())) -> generated_type(unchecked()).
get_return_type(Function) ->
case Function of
{generated_function, _, Ret} ->
Ret;
_ ->
unchecked
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 380).
?DOC(false).
-spec custom_type(
gleam@option:option(binary()),
binary(),
list(generated_type(unchecked()))
) -> generated_type(any()).
custom_type(Module, Name, Types) ->
{custom_type, Module, Name, Types}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 390).
-spec to_unchecked(generated_type(any())) -> generated_type(unchecked()).
to_unchecked(Type_) ->
gleamgen_ffi:identity(Type_).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 39).
-spec list(generated_type(GGA)) -> generated_type(list(GGA)).
list(Type_) ->
{generated_list,
begin
_pipe = Type_,
gleamgen_ffi:identity(_pipe)
end}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 43).
-spec tuple1(generated_type(GGE)) -> generated_type({GGE}).
tuple1(Type1) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end]}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 47).
-spec tuple2(generated_type(GGH), generated_type(GGJ)) -> generated_type({GGH,
GGJ}).
tuple2(Type1, Type2) ->
{generated_tuple,
[begin
_pipe = Type1,
gleamgen_ffi:identity(_pipe)
end,
begin
_pipe@1 = Type2,
gleamgen_ffi:identity(_pipe@1)
end]}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 54).
-spec tuple3(generated_type(GGM), generated_type(GGO), generated_type(GGQ)) -> generated_type({GGM,
GGO,
GGQ}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 66).
-spec tuple4(
generated_type(GGT),
generated_type(GGV),
generated_type(GGX),
generated_type(GGZ)
) -> generated_type({GGT, GGV, GGX, GGZ}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 80).
-spec tuple5(
generated_type(GHC),
generated_type(GHE),
generated_type(GHG),
generated_type(GHI),
generated_type(GHK)
) -> generated_type({GHC, GHE, GHG, GHI, GHK}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 96).
-spec tuple6(
generated_type(GHN),
generated_type(GHP),
generated_type(GHR),
generated_type(GHT),
generated_type(GHV),
generated_type(GHX)
) -> generated_type({GHN, GHP, GHR, GHT, GHV, GHX}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 114).
-spec tuple7(
generated_type(GIA),
generated_type(GIC),
generated_type(GIE),
generated_type(GIG),
generated_type(GII),
generated_type(GIK),
generated_type(GIM)
) -> generated_type({GIA, GIC, GIE, GIG, GII, GIK, GIM}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 134).
-spec tuple8(
generated_type(GIP),
generated_type(GIR),
generated_type(GIT),
generated_type(GIV),
generated_type(GIX),
generated_type(GIZ),
generated_type(GJB),
generated_type(GJD)
) -> generated_type({GIP, GIR, GIT, GIV, GIX, GIZ, GJB, GJD}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 156).
-spec tuple9(
generated_type(GJG),
generated_type(GJI),
generated_type(GJK),
generated_type(GJM),
generated_type(GJO),
generated_type(GJQ),
generated_type(GJS),
generated_type(GJU),
generated_type(GJW)
) -> generated_type({GJG, GJI, GJK, GJM, GJO, GJQ, GJS, GJU, GJW}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 188).
-spec result(generated_type(GKD), generated_type(GKF)) -> generated_type({ok,
GKD} |
{error, GKF}).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 198).
-spec function0(generated_type(GKK)) -> generated_type(fun(() -> GKK)).
function0(Returns) ->
{generated_function,
[],
begin
_pipe = Returns,
gleamgen_ffi:identity(_pipe)
end}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 202).
-spec function1(generated_type(GKN), generated_type(GKP)) -> generated_type(fun((GKN) -> GKP)).
function1(Arg1, Returns) ->
{generated_function,
[begin
_pipe = Arg1,
gleamgen_ffi:identity(_pipe)
end],
begin
_pipe@1 = Returns,
gleamgen_ffi:identity(_pipe@1)
end}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 209).
-spec function2(generated_type(GKS), generated_type(GKU), generated_type(GKW)) -> generated_type(fun((GKS, GKU) -> GKW)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 220).
-spec function3(
generated_type(GKZ),
generated_type(GLB),
generated_type(GLD),
generated_type(GLF)
) -> generated_type(fun((GKZ, GLB, GLD) -> GLF)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 232).
-spec function4(
generated_type(GLI),
generated_type(GLK),
generated_type(GLM),
generated_type(GLO),
generated_type(GLQ)
) -> generated_type(fun((GLI, GLK, GLM, GLO) -> GLQ)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 250).
-spec function5(
generated_type(GLT),
generated_type(GLV),
generated_type(GLX),
generated_type(GLZ),
generated_type(GMB),
generated_type(GMD)
) -> generated_type(fun((GLT, GLV, GLX, GLZ, GMB) -> GMD)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 270).
-spec function6(
generated_type(GMG),
generated_type(GMI),
generated_type(GMK),
generated_type(GMM),
generated_type(GMO),
generated_type(GMQ),
generated_type(GMS)
) -> generated_type(fun((GMG, GMI, GMK, GMM, GMO, GMQ) -> GMS)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 292).
-spec function7(
generated_type(GMV),
generated_type(GMX),
generated_type(GMZ),
generated_type(GNB),
generated_type(GND),
generated_type(GNF),
generated_type(GNH),
generated_type(GNJ)
) -> generated_type(fun((GMV, GMX, GMZ, GNB, GND, GNF, GNH) -> GNJ)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 316).
-spec function8(
generated_type(GNM),
generated_type(GNO),
generated_type(GNQ),
generated_type(GNS),
generated_type(GNU),
generated_type(GNW),
generated_type(GNY),
generated_type(GOA),
generated_type(GOC)
) -> generated_type(fun((GNM, GNO, GNQ, GNS, GNU, GNW, GNY, GOA) -> GOC)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 342).
-spec function9(
generated_type(GOF),
generated_type(GOH),
generated_type(GOJ),
generated_type(GOL),
generated_type(GON),
generated_type(GOP),
generated_type(GOR),
generated_type(GOT),
generated_type(GOV),
generated_type(GOX)
) -> generated_type(fun((GOF, GOH, GOJ, GOL, GON, GOP, GOR, GOT, GOV) -> GOX)).
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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 394).
-spec unsafe_from_unchecked(generated_type(unchecked())) -> generated_type(any()).
unsafe_from_unchecked(Type_) ->
gleamgen_ffi:identity(Type_).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 441).
-spec render_type_list(list(generated_type(unchecked()))) -> {ok,
{list(glam@doc:document()), gleamgen@render:rendered_details()}} |
{error, nil}.
render_type_list(Types) ->
Possibly_rendered = begin
_pipe = Types,
gleam@list:try_fold(
_pipe,
{[], {rendered_details, []}},
fun(Acc, T) -> _pipe@1 = render_type(T),
gleam@result:map(
_pipe@1,
fun(Rendered) ->
{[erlang:element(2, Rendered) | erlang:element(1, Acc)],
gleamgen@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("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 398).
-spec render_type(generated_type(any())) -> {ok, gleamgen@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, []}},
{ok, _pipe@1};
generated_string ->
_pipe@2 = glam@doc:from_string(<<"String"/utf8>>),
_pipe@3 = {render, _pipe@2, {rendered_details, []}},
{ok, _pipe@3};
generated_int ->
_pipe@4 = glam@doc:from_string(<<"Int"/utf8>>),
_pipe@5 = {render, _pipe@4, {rendered_details, []}},
{ok, _pipe@5};
generated_float ->
_pipe@6 = glam@doc:from_string(<<"Float"/utf8>>),
_pipe@7 = {render, _pipe@6, {rendered_details, []}},
{ok, _pipe@7};
generated_nil ->
_pipe@8 = glam@doc:from_string(<<"Nil"/utf8>>),
_pipe@9 = {render, _pipe@8, {rendered_details, []}},
{ok, _pipe@9};
{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);
unchecked ->
{error, nil};
{unchecked_ident, T@2} ->
Used_imports = case gleam@string:split_once(T@2, <<"."/utf8>>) of
{ok, {Module@1, _}} ->
[Module@1];
{error, nil} ->
[]
end,
_pipe@10 = glam@doc:from_string(T@2),
_pipe@11 = {render, _pipe@10, {rendered_details, Used_imports}},
{ok, _pipe@11};
{generic, T@3} ->
_pipe@12 = glam@doc:from_string(T@3),
_pipe@13 = {render, _pipe@12, {rendered_details, []}},
{ok, _pipe@13};
{generated_function, Args, Return} ->
render_function(Args, Return)
end.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 456).
-spec render_custom(
gleam@option:option(binary()),
binary(),
list(generated_type(unchecked()))
) -> {ok, gleamgen@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_details} = 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_details,
_pipe@1 = glam@doc:append(_pipe, glam@doc:from_string(Name)),
_pipe@2 = glam@doc:append(_pipe@1, case Types of
[] ->
{concat, []};
_ ->
gleamgen@render:pretty_list(Rendered_types)
end),
_pipe@3 = {render, _pipe@2, {rendered_details, Used_imports}},
{ok, _pipe@3}
end
).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 479).
-spec render_tuple(list(generated_type(unchecked()))) -> {ok,
gleamgen@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@render:pretty_list(Rendered_types)
),
_pipe@2 = {render, _pipe@1, Details},
{ok, _pipe@2}
end
).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/types.gleam", 490).
-spec render_function(
list(generated_type(unchecked())),
generated_type(unchecked())
) -> {ok, gleamgen@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),
Used_imports = case Return@1 of
{ok, Ret} ->
lists:append(
erlang:element(2, erlang:element(3, Ret)),
erlang:element(2, Details)
);
{error, nil} ->
erlang:element(2, Details)
end,
_pipe = glam@doc:concat(
[glam@doc:from_string(<<"fn"/utf8>>),
gleamgen@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, {rendered_details, Used_imports}},
{ok, _pipe@1}
end
).