47 lines
929 B
Lua
47 lines
929 B
Lua
local private, public = {}, {}
|
|
Aux.sort = public
|
|
|
|
public.LT = {}
|
|
public.EQ = {}
|
|
public.GT = {}
|
|
|
|
function public.invert_order(ordering)
|
|
if ordering == public.LT then
|
|
return public.GT
|
|
elseif ordering == public.GT then
|
|
return public.LT
|
|
else
|
|
return public.EQ
|
|
end
|
|
end
|
|
|
|
function public.compare(a, b, desc)
|
|
if a < b then
|
|
return desc and public.GT or public.LT
|
|
elseif a > b then
|
|
return desc and public.LT or public.GT
|
|
else
|
|
return public.EQ
|
|
end
|
|
end
|
|
|
|
function public.compare_from_lt(lt)
|
|
return function(a, b)
|
|
if lt(a, b) then
|
|
return public.LT
|
|
elseif lt(b, a) then
|
|
return public.GT
|
|
else
|
|
return public.EQ
|
|
end
|
|
end
|
|
end
|
|
|
|
function public.multi_lt(...)
|
|
for i=1,arg.n-1,2 do
|
|
if arg[i] ~= arg[i+1] then
|
|
return arg[i] < arg[i+1]
|
|
end
|
|
end
|
|
return false
|
|
end |