Current section

Files

Jump to
gluple src gluple.erl
Raw

src/gluple.erl

-module(gluple).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([is_tuple/1, tuple_to_list/1, list_to_tuple/1, tuple_size/1, tuple_element/2, append1/2, append2/2, append3/2, append4/2, append5/2, append6/2, append7/2, append8/2, append9/2, replace_last1/2, replace_last2/2, replace_last3/2, replace_last4/2, replace_last5/2, replace_last6/2, replace_last7/2, replace_last8/2, replace_last9/2]).
-spec is_tuple(any()) -> boolean().
is_tuple(Maybe_tuple) ->
erlang:is_tuple(Maybe_tuple).
-spec tuple_to_list(any()) -> {ok, list(gleam@dynamic:dynamic_())} |
{error, list(gleam@dynamic:decode_error())}.
tuple_to_list(Tuple) ->
case erlang:is_tuple(Tuple) of
true ->
{ok, erlang:tuple_to_list(Tuple)};
false ->
{error,
[{decode_error,
<<"Tuple"/utf8>>,
gleam@string:inspect(Tuple),
[]}]}
end.
-spec list_to_tuple(list(any())) -> gleam@dynamic:dynamic_().
list_to_tuple(List) ->
erlang:list_to_tuple(List).
-spec tuple_size(any()) -> {ok, integer()} |
{error, list(gleam@dynamic:decode_error())}.
tuple_size(Tuple) ->
case erlang:is_tuple(Tuple) of
true ->
{ok, erlang:tuple_size(Tuple)};
false ->
{error,
[{decode_error,
<<"Tuple"/utf8>>,
gleam@string:inspect(Tuple),
[]}]}
end.
-spec tuple_element(any(), integer()) -> {ok, gleam@dynamic:dynamic_()} |
{error, list(gleam@dynamic:decode_error())}.
tuple_element(Tuple, Index) ->
case erlang:is_tuple(Tuple) of
true ->
Tuple_size = erlang:tuple_size(Tuple),
case (Index >= 0) andalso (Index < Tuple_size) of
true ->
{ok, erlang:element(Index + 1, Tuple)};
false ->
{error,
[{decode_error,
<<"Tuple size "/utf8,
(gleam@int:to_string(Tuple_size))/binary>>,
<<"Desired index "/utf8,
(gleam@int:to_string(Index))/binary>>,
[]}]}
end;
false ->
{error,
[{decode_error,
<<"Tuple"/utf8>>,
gleam@string:inspect(Tuple),
[]}]}
end.
-spec append1({JJF}, JJG) -> {JJF, JJG}.
append1(Tuple, Data) ->
{erlang:element(1, Tuple), Data}.
-spec append2({JJH, JJI}, JJJ) -> {JJH, JJI, JJJ}.
append2(Tuple, Data) ->
{erlang:element(1, Tuple), erlang:element(2, Tuple), Data}.
-spec append3({JJK, JJL, JJM}, JJN) -> {JJK, JJL, JJM, JJN}.
append3(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
Data}.
-spec append4({JJO, JJP, JJQ, JJR}, JJS) -> {JJO, JJP, JJQ, JJR, JJS}.
append4(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
Data}.
-spec append5({JJT, JJU, JJV, JJW, JJX}, JJY) -> {JJT, JJU, JJV, JJW, JJX, JJY}.
append5(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
Data}.
-spec append6({JJZ, JKA, JKB, JKC, JKD, JKE}, JKF) -> {JJZ,
JKA,
JKB,
JKC,
JKD,
JKE,
JKF}.
append6(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
Data}.
-spec append7({JKG, JKH, JKI, JKJ, JKK, JKL, JKM}, JKN) -> {JKG,
JKH,
JKI,
JKJ,
JKK,
JKL,
JKM,
JKN}.
append7(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
erlang:element(7, Tuple),
Data}.
-spec append8({JKO, JKP, JKQ, JKR, JKS, JKT, JKU, JKV}, JKW) -> {JKO,
JKP,
JKQ,
JKR,
JKS,
JKT,
JKU,
JKV,
JKW}.
append8(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
erlang:element(7, Tuple),
erlang:element(8, Tuple),
Data}.
-spec append9({JKX, JKY, JKZ, JLA, JLB, JLC, JLD, JLE, JLF}, JLG) -> {JKX,
JKY,
JKZ,
JLA,
JLB,
JLC,
JLD,
JLE,
JLF,
JLG}.
append9(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
erlang:element(7, Tuple),
erlang:element(8, Tuple),
erlang:element(9, Tuple),
Data}.
-spec replace_last1({any()}, JLI) -> {JLI}.
replace_last1(_, Data) ->
{Data}.
-spec replace_last2({JLJ, any()}, JLL) -> {JLJ, JLL}.
replace_last2(Tuple, Data) ->
{erlang:element(1, Tuple), Data}.
-spec replace_last3({JLM, JLN, any()}, JLP) -> {JLM, JLN, JLP}.
replace_last3(Tuple, Data) ->
{erlang:element(1, Tuple), erlang:element(2, Tuple), Data}.
-spec replace_last4({JLQ, JLR, JLS, any()}, JLU) -> {JLQ, JLR, JLS, JLU}.
replace_last4(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
Data}.
-spec replace_last5({JLV, JLW, JLX, JLY, any()}, JMA) -> {JLV,
JLW,
JLX,
JLY,
JMA}.
replace_last5(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
Data}.
-spec replace_last6({JMB, JMC, JMD, JME, JMF, any()}, JMH) -> {JMB,
JMC,
JMD,
JME,
JMF,
JMH}.
replace_last6(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
Data}.
-spec replace_last7({JMI, JMJ, JMK, JML, JMM, JMN, any()}, JMP) -> {JMI,
JMJ,
JMK,
JML,
JMM,
JMN,
JMP}.
replace_last7(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
Data}.
-spec replace_last8({JMQ, JMR, JMS, JMT, JMU, JMV, JMW, any()}, JMY) -> {JMQ,
JMR,
JMS,
JMT,
JMU,
JMV,
JMW,
JMY}.
replace_last8(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
erlang:element(7, Tuple),
Data}.
-spec replace_last9({JMZ, JNA, JNB, JNC, JND, JNE, JNF, JNG, any()}, JNI) -> {JMZ,
JNA,
JNB,
JNC,
JND,
JNE,
JNF,
JNG,
JNI}.
replace_last9(Tuple, Data) ->
{erlang:element(1, Tuple),
erlang:element(2, Tuple),
erlang:element(3, Tuple),
erlang:element(4, Tuple),
erlang:element(5, Tuple),
erlang:element(6, Tuple),
erlang:element(7, Tuple),
erlang:element(8, Tuple),
Data}.