-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.