Packages

Generate lorem ipsum placeholder text in Gleam

Current section

Files

Jump to
lorem_ipsum src lorem_ipsum@sequence.erl
Raw

src/lorem_ipsum@sequence.erl

-module(lorem_ipsum@sequence).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/lorem_ipsum/sequence.gleam").
-export([pseudo_index/2, list_index/2, bounded/3]).
-file("src/lorem_ipsum/sequence.gleam", 1).
-spec pseudo_index(integer(), integer()) -> integer().
pseudo_index(Position, Modulo) ->
case Modulo of
0 -> 0;
Gleam@denominator -> Position rem Gleam@denominator
end.
-file("src/lorem_ipsum/sequence.gleam", 17).
-spec list_index(list(DQV), integer()) -> {ok, DQV} | {error, nil}.
list_index(Xs, Index) ->
case Xs of
[] ->
{error, nil};
[X | Rest] ->
case Index of
0 ->
{ok, X};
_ ->
list_index(Rest, Index - 1)
end
end.
-file("src/lorem_ipsum/sequence.gleam", 28).
-spec max_int(integer(), integer()) -> integer().
max_int(A, B) ->
case A > B of
true ->
A;
false ->
B
end.
-file("src/lorem_ipsum/sequence.gleam", 5).
-spec bounded(integer(), integer(), integer()) -> integer().
bounded(Position, Lower, Upper) ->
Width = max_int(Upper - Lower, 0),
case Width =:= 0 of
true ->
Lower;
false ->
Index = pseudo_index(Position, Width + 1),
Lower + Index
end.