mirror of
https://github.com/TangentFoxy/lume.git
synced 2024-11-19 07:04:24 +00:00
Added lume.ripairs() function, updated README and tests
This commit is contained in:
parent
c773acdcf4
commit
edd7c99382
11
README.md
11
README.md
@ -361,6 +361,17 @@ lume.hotswap("lume") -- Reloads the lume module
|
|||||||
assert(lume.hotswap("inexistant_module")) -- Raises an error
|
assert(lume.hotswap("inexistant_module")) -- Raises an error
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### lume.ripairs(t)
|
||||||
|
Performs the same function as `ipairs()` but iterates in reverse; this allows
|
||||||
|
the removal of items from the table during iteration without any items being
|
||||||
|
skipped.
|
||||||
|
```lua
|
||||||
|
-- Prints "3->c", "2->b" and "1->a" on separate lines
|
||||||
|
for i, v in lume.ripairs({ "a", "b", "c" }) do
|
||||||
|
print(i .. "->" .. v)
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
### lume.rgba(color)
|
### lume.rgba(color)
|
||||||
Takes the 32bit integer `color` argument and returns 4 numbers, one for each
|
Takes the 32bit integer `color` argument and returns 4 numbers, one for each
|
||||||
channel, with a range of 0 - 255. The returned values can be used as the
|
channel, with a range of 0 - 255. The returned values can be used as the
|
||||||
|
14
lume.lua
14
lume.lua
@ -578,6 +578,20 @@ function lume.hotswap(modname)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local ripairs_iter = function(t, i)
|
||||||
|
i = i - 1
|
||||||
|
local v = t[i]
|
||||||
|
if v then return i, v end
|
||||||
|
end
|
||||||
|
|
||||||
|
function lume.ripairs(t)
|
||||||
|
if t == nil then
|
||||||
|
return noop
|
||||||
|
end
|
||||||
|
return ripairs_iter, t, (#t + 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function lume.rgba(color)
|
function lume.rgba(color)
|
||||||
local a = math_floor((color / 16777216) % 256)
|
local a = math_floor((color / 16777216) % 256)
|
||||||
local r = math_floor((color / 65536) % 256)
|
local r = math_floor((color / 65536) % 256)
|
||||||
|
@ -486,6 +486,18 @@ tests["lume.hotswap"] = function()
|
|||||||
testeq( type(err), "string" )
|
testeq( type(err), "string" )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- lume.ripairs
|
||||||
|
tests["lume.ripairs"] = function()
|
||||||
|
local t = { "a", "b", "c" }
|
||||||
|
local r = {}
|
||||||
|
for i, v in lume.ripairs(t) do
|
||||||
|
table.insert(r, { i, v })
|
||||||
|
end
|
||||||
|
testeq( r, { { 3, "c" }, { 2, "b" }, { 1, "a" } })
|
||||||
|
for i, v in lume.ripairs(nil) do
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- lume.rgba
|
-- lume.rgba
|
||||||
tests["lume.rgba"] = function()
|
tests["lume.rgba"] = function()
|
||||||
local r, g, b, a = lume.rgba(0x12345678)
|
local r, g, b, a = lume.rgba(0x12345678)
|
||||||
|
Loading…
Reference in New Issue
Block a user