mirror of
https://github.com/1bardesign/batteries.git
synced 2024-11-12 19:31:47 +00:00
fix assert:one_of for non-string values
This commit is contained in:
parent
2762d4ada2
commit
01b7dd000f
20
assert.lua
20
assert.lua
@ -82,6 +82,26 @@ function assert:type_or_nil(a, t, msg, stack_level)
|
|||||||
return a
|
return a
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--assert a value is one of those in a table of options
|
||||||
|
function assert:one_of(a, t, msg, stack_level)
|
||||||
|
for _, value in ipairs(t) do
|
||||||
|
if value == a then
|
||||||
|
return a
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local values = {}
|
||||||
|
for index = 1, #t do
|
||||||
|
values[index] = tostring(t[index])
|
||||||
|
end
|
||||||
|
|
||||||
|
error(("assertion failed: %s not one of %s %s"):format(
|
||||||
|
tostring(a),
|
||||||
|
table.concat(values, ", "),
|
||||||
|
_extra(msg)
|
||||||
|
), 2 + (stack_level or 0))
|
||||||
|
end
|
||||||
|
|
||||||
--replace everything in assert with nop functions that just return their second argument, for near-zero overhead on release
|
--replace everything in assert with nop functions that just return their second argument, for near-zero overhead on release
|
||||||
function assert:nop()
|
function assert:nop()
|
||||||
local nop = function(_, a)
|
local nop = function(_, a)
|
||||||
|
Loading…
Reference in New Issue
Block a user