Current section

Files

Jump to
gleamgen src gleamgen@function.erl
Raw

src/gleamgen@function.erl

-module(gleamgen@function).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new0/2, new1/3, new2/4, new3/5, new4/6, new5/7, new6/8, new7/9, new8/10, new9/11, to_unchecked/1, get_function_name/1]).
-export_type([function_/2]).
-type function_(LKR, LKS) :: {function,
list({binary(),
gleamgen@types:generated_type(gleamgen@types:unchecked())}),
gleamgen@types:generated_type(LKS),
gleamgen@expression:expression(LKS)} |
{gleam_phantom, LKR}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 12).
-spec new0(
gleamgen@types:generated_type(LKT),
fun(() -> gleamgen@expression:expression(LKT))
) -> function_(fun((any()) -> LKT), LKT).
new0(Returns, Handler) ->
Body = Handler(),
{function, [], Returns, Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 20).
-spec new1(
{binary(), gleamgen@types:generated_type(LKZ)},
gleamgen@types:generated_type(LLB),
fun((gleamgen@expression:expression(LKZ)) -> gleamgen@expression:expression(LLB))
) -> function_(fun((LKZ) -> LLB), LLB).
new1(Arg1, Returns, Handler) ->
Body = Handler(gleamgen@expression:unchecked_ident(erlang:element(1, Arg1))),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 32).
-spec new2(
{binary(), gleamgen@types:generated_type(LLH)},
{binary(), gleamgen@types:generated_type(LLJ)},
gleamgen@types:generated_type(LLL),
fun((gleamgen@expression:expression(LLH), gleamgen@expression:expression(LLJ)) -> gleamgen@expression:expression(LLL))
) -> function_(fun((LLH, LLJ) -> LLL), LLL).
new2(Arg1, Arg2, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 54).
-spec new3(
{binary(), gleamgen@types:generated_type(LLS)},
{binary(), gleamgen@types:generated_type(LLU)},
{binary(), gleamgen@types:generated_type(LLW)},
gleamgen@types:generated_type(LLY),
fun((gleamgen@expression:expression(LLS), gleamgen@expression:expression(LLU), gleamgen@expression:expression(LLW)) -> gleamgen@expression:expression(LLY))
) -> function_(fun((LLS, LLU, LLW) -> LLY), LLY).
new3(Arg1, Arg2, Arg3, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 83).
-spec new4(
{binary(), gleamgen@types:generated_type(LMG)},
{binary(), gleamgen@types:generated_type(LMI)},
{binary(), gleamgen@types:generated_type(LMK)},
{binary(), gleamgen@types:generated_type(LMM)},
gleamgen@types:generated_type(LMO),
fun((gleamgen@expression:expression(LMG), gleamgen@expression:expression(LMI), gleamgen@expression:expression(LMK), gleamgen@expression:expression(LMM)) -> gleamgen@expression:expression(LMO))
) -> function_(fun((LMG, LMI, LMK, LMM) -> LMO), LMO).
new4(Arg1, Arg2, Arg3, Arg4, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg4))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end},
{erlang:element(1, Arg4),
begin
_pipe@3 = erlang:element(2, Arg4),
gleamgen_ffi:identity(_pipe@3)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 116).
-spec new5(
{binary(), gleamgen@types:generated_type(LMX)},
{binary(), gleamgen@types:generated_type(LMZ)},
{binary(), gleamgen@types:generated_type(LNB)},
{binary(), gleamgen@types:generated_type(LND)},
{binary(), gleamgen@types:generated_type(LNF)},
gleamgen@types:generated_type(LNH),
fun((gleamgen@expression:expression(LMX), gleamgen@expression:expression(LMZ), gleamgen@expression:expression(LNB), gleamgen@expression:expression(LND), gleamgen@expression:expression(LNF)) -> gleamgen@expression:expression(LNH))
) -> function_(fun((LMX, LMZ, LNB, LND, LNF) -> LNH), LNH).
new5(Arg1, Arg2, Arg3, Arg4, Arg5, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg5))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end},
{erlang:element(1, Arg4),
begin
_pipe@3 = erlang:element(2, Arg4),
gleamgen_ffi:identity(_pipe@3)
end},
{erlang:element(1, Arg5),
begin
_pipe@4 = erlang:element(2, Arg5),
gleamgen_ffi:identity(_pipe@4)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 153).
-spec new6(
{binary(), gleamgen@types:generated_type(LNR)},
{binary(), gleamgen@types:generated_type(LNT)},
{binary(), gleamgen@types:generated_type(LNV)},
{binary(), gleamgen@types:generated_type(LNX)},
{binary(), gleamgen@types:generated_type(LNZ)},
{binary(), gleamgen@types:generated_type(LOB)},
gleamgen@types:generated_type(LOD),
fun((gleamgen@expression:expression(LNR), gleamgen@expression:expression(LNT), gleamgen@expression:expression(LNV), gleamgen@expression:expression(LNX), gleamgen@expression:expression(LNZ), gleamgen@expression:expression(LOB)) -> gleamgen@expression:expression(LOD))
) -> function_(fun((LNR, LNT, LNV, LNX, LNZ, LOB) -> LOD), LOD).
new6(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg6))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end},
{erlang:element(1, Arg4),
begin
_pipe@3 = erlang:element(2, Arg4),
gleamgen_ffi:identity(_pipe@3)
end},
{erlang:element(1, Arg5),
begin
_pipe@4 = erlang:element(2, Arg5),
gleamgen_ffi:identity(_pipe@4)
end},
{erlang:element(1, Arg6),
begin
_pipe@5 = erlang:element(2, Arg6),
gleamgen_ffi:identity(_pipe@5)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 194).
-spec new7(
{binary(), gleamgen@types:generated_type(LOO)},
{binary(), gleamgen@types:generated_type(LOQ)},
{binary(), gleamgen@types:generated_type(LOS)},
{binary(), gleamgen@types:generated_type(LOU)},
{binary(), gleamgen@types:generated_type(LOW)},
{binary(), gleamgen@types:generated_type(LOY)},
{binary(), gleamgen@types:generated_type(LPA)},
gleamgen@types:generated_type(LPC),
fun((gleamgen@expression:expression(LOO), gleamgen@expression:expression(LOQ), gleamgen@expression:expression(LOS), gleamgen@expression:expression(LOU), gleamgen@expression:expression(LOW), gleamgen@expression:expression(LOY), gleamgen@expression:expression(LPA)) -> gleamgen@expression:expression(LPC))
) -> function_(fun((LOO, LOQ, LOS, LOU, LOW, LOY, LPA) -> LPC), LPC).
new7(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg7))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end},
{erlang:element(1, Arg4),
begin
_pipe@3 = erlang:element(2, Arg4),
gleamgen_ffi:identity(_pipe@3)
end},
{erlang:element(1, Arg5),
begin
_pipe@4 = erlang:element(2, Arg5),
gleamgen_ffi:identity(_pipe@4)
end},
{erlang:element(1, Arg6),
begin
_pipe@5 = erlang:element(2, Arg6),
gleamgen_ffi:identity(_pipe@5)
end},
{erlang:element(1, Arg7),
begin
_pipe@6 = erlang:element(2, Arg7),
gleamgen_ffi:identity(_pipe@6)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 239).
-spec new8(
{binary(), gleamgen@types:generated_type(LPO)},
{binary(), gleamgen@types:generated_type(LPQ)},
{binary(), gleamgen@types:generated_type(LPS)},
{binary(), gleamgen@types:generated_type(LPU)},
{binary(), gleamgen@types:generated_type(LPW)},
{binary(), gleamgen@types:generated_type(LPY)},
{binary(), gleamgen@types:generated_type(LQA)},
{binary(), gleamgen@types:generated_type(LQC)},
gleamgen@types:generated_type(LQE),
fun((gleamgen@expression:expression(LPO), gleamgen@expression:expression(LPQ), gleamgen@expression:expression(LPS), gleamgen@expression:expression(LPU), gleamgen@expression:expression(LPW), gleamgen@expression:expression(LPY), gleamgen@expression:expression(LQA), gleamgen@expression:expression(LQC)) -> gleamgen@expression:expression(LQE))
) -> function_(fun((LPO, LPQ, LPS, LPU, LPW, LPY, LQA, LQC) -> LQE), LQE).
new8(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg7)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg8))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end},
{erlang:element(1, Arg4),
begin
_pipe@3 = erlang:element(2, Arg4),
gleamgen_ffi:identity(_pipe@3)
end},
{erlang:element(1, Arg5),
begin
_pipe@4 = erlang:element(2, Arg5),
gleamgen_ffi:identity(_pipe@4)
end},
{erlang:element(1, Arg6),
begin
_pipe@5 = erlang:element(2, Arg6),
gleamgen_ffi:identity(_pipe@5)
end},
{erlang:element(1, Arg7),
begin
_pipe@6 = erlang:element(2, Arg7),
gleamgen_ffi:identity(_pipe@6)
end},
{erlang:element(1, Arg8),
begin
_pipe@7 = erlang:element(2, Arg8),
gleamgen_ffi:identity(_pipe@7)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 288).
-spec new9(
{binary(), gleamgen@types:generated_type(LQR)},
{binary(), gleamgen@types:generated_type(LQT)},
{binary(), gleamgen@types:generated_type(LQV)},
{binary(), gleamgen@types:generated_type(LQX)},
{binary(), gleamgen@types:generated_type(LQZ)},
{binary(), gleamgen@types:generated_type(LRB)},
{binary(), gleamgen@types:generated_type(LRD)},
{binary(), gleamgen@types:generated_type(LRF)},
{binary(), gleamgen@types:generated_type(LRH)},
gleamgen@types:generated_type(LRJ),
fun((gleamgen@expression:expression(LQR), gleamgen@expression:expression(LQT), gleamgen@expression:expression(LQV), gleamgen@expression:expression(LQX), gleamgen@expression:expression(LQZ), gleamgen@expression:expression(LRB), gleamgen@expression:expression(LRD), gleamgen@expression:expression(LRF), gleamgen@expression:expression(LRH)) -> gleamgen@expression:expression(LRJ))
) -> function_(fun((LQR, LQT, LQV, LQX, LQZ, LRB, LRD, LRF, LRH) -> LRJ), LRJ).
new9(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Returns, Handler) ->
Body = Handler(
gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg7)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg8)),
gleamgen@expression:unchecked_ident(erlang:element(1, Arg9))
),
{function,
[{erlang:element(1, Arg1),
begin
_pipe = erlang:element(2, Arg1),
gleamgen_ffi:identity(_pipe)
end},
{erlang:element(1, Arg2),
begin
_pipe@1 = erlang:element(2, Arg2),
gleamgen_ffi:identity(_pipe@1)
end},
{erlang:element(1, Arg3),
begin
_pipe@2 = erlang:element(2, Arg3),
gleamgen_ffi:identity(_pipe@2)
end},
{erlang:element(1, Arg4),
begin
_pipe@3 = erlang:element(2, Arg4),
gleamgen_ffi:identity(_pipe@3)
end},
{erlang:element(1, Arg5),
begin
_pipe@4 = erlang:element(2, Arg5),
gleamgen_ffi:identity(_pipe@4)
end},
{erlang:element(1, Arg6),
begin
_pipe@5 = erlang:element(2, Arg6),
gleamgen_ffi:identity(_pipe@5)
end},
{erlang:element(1, Arg7),
begin
_pipe@6 = erlang:element(2, Arg7),
gleamgen_ffi:identity(_pipe@6)
end},
{erlang:element(1, Arg8),
begin
_pipe@7 = erlang:element(2, Arg8),
gleamgen_ffi:identity(_pipe@7)
end},
{erlang:element(1, Arg9),
begin
_pipe@8 = erlang:element(2, Arg9),
gleamgen_ffi:identity(_pipe@8)
end}],
Returns,
Body}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 348).
-spec to_unchecked(function_(any(), any())) -> function_(gleamgen@types:unchecked(), gleamgen@types:unchecked()).
to_unchecked(Type_) ->
gleamgen_ffi:identity(Type_).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 355).
-spec get_function_name(any()) -> binary().
get_function_name(Type_) ->
gleamgen_ffi:get_function_name(Type_).