-module(qrkit@internal@util).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/qrkit/internal/util.gleam").
-export([range/2, reverse_range/2, at/2, at_or/3, replace_at/3, repeat/2, characters/1, join/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/qrkit/internal/util.gleam", 6).
?DOC(false).
-spec range(integer(), integer()) -> list(integer()).
range(Start, Stop) ->
case Start > Stop of
true ->
[];
false ->
[Start | range(Start + 1, Stop)]
end.
-file("src/qrkit/internal/util.gleam", 13).
?DOC(false).
-spec reverse_range(integer(), integer()) -> list(integer()).
reverse_range(Start, Stop) ->
case Start < Stop of
true ->
[];
false ->
[Start | reverse_range(Start - 1, Stop)]
end.
-file("src/qrkit/internal/util.gleam", 20).
?DOC(false).
-spec at(list(DLT), integer()) -> {ok, DLT} | {error, nil}.
at(List, Index) ->
case {List, Index} of
{_, I} when I < 0 ->
{error, nil};
{[First | _], 0} ->
{ok, First};
{[_ | Rest], I@1} ->
at(Rest, I@1 - 1);
{[], _} ->
{error, nil}
end.
-file("src/qrkit/internal/util.gleam", 29).
?DOC(false).
-spec at_or(list(DLX), integer(), DLX) -> DLX.
at_or(List, Index, Default) ->
case at(List, Index) of
{ok, Value} ->
Value;
{error, _} ->
Default
end.
-file("src/qrkit/internal/util.gleam", 36).
?DOC(false).
-spec replace_at(list(DLZ), integer(), DLZ) -> list(DLZ).
replace_at(List, Index, Replacement) ->
case {List, Index} of
{[], _} ->
[];
{[_ | Rest], 0} ->
[Replacement | Rest];
{[First | Rest@1], I} ->
[First | replace_at(Rest@1, I - 1, Replacement)]
end.
-file("src/qrkit/internal/util.gleam", 44).
?DOC(false).
-spec repeat(DMC, integer()) -> list(DMC).
repeat(Value, Count) ->
gleam@list:repeat(Value, Count).
-file("src/qrkit/internal/util.gleam", 48).
?DOC(false).
-spec characters(binary()) -> list(binary()).
characters(Text) ->
_pipe = Text,
_pipe@1 = gleam@string:to_utf_codepoints(_pipe),
gleam@list:map(
_pipe@1,
fun(Codepoint) ->
gleam_stdlib:utf_codepoint_list_to_string([Codepoint])
end
).
-file("src/qrkit/internal/util.gleam", 54).
?DOC(false).
-spec join(list(binary()), binary()) -> binary().
join(Strings, Separator) ->
gleam@string:join(Strings, Separator).