mirror of
https://github.com/1bardesign/batteries.git
synced 2024-11-22 06:04:35 +00:00
Merge pull request #64 from TurtleP/turtlep/assert_one_of
add `assert:one_of`
This commit is contained in:
commit
3421c93848
15
assert.lua
15
assert.lua
@ -82,6 +82,21 @@ 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
|
||||||
|
|
||||||
|
error(("assertion failed: %s not one of %s %s"):format(
|
||||||
|
tostring(a),
|
||||||
|
table.concat(t, ", "),
|
||||||
|
_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