Optional parameters to Store() addded

This commit is contained in:
Joachim Stolberg 2019-01-15 20:25:13 +01:00
parent 9642fd3b04
commit 12798bb7d2

@ -35,13 +35,13 @@ safer_lua.DataStructHelp = [[
Unlike arrays, which are indexed by a range of numbers, Unlike arrays, which are indexed by a range of numbers,
'stores' are indexed by keys: 'stores' are indexed by keys:
s = Store() --> {} s = Store("a",4,"b",5) --> {a = 4, b = 5}
s.set("val", 12) --> {val = 12} s.set("val", 12) --> {a = 4, b = 5, val = 12}
s.get("val") --> returns 12 s.get("val") --> returns 12
s.set(0, "hello") --> {val = 12, [0] = "hello"} s.set(0, "hello") --> {a = 4, b = 5, val = 12, [0] = "hello"}
s.del("val") --> {[0] = "hello"} s.del("val") --> {[0] = "hello"}
s.size() --> function returns 1 s.size() --> function returns 4
s.memsize() --> function returns 6 s.memsize() --> function returns 8
s.next() --> for loop iterator function s.next() --> for loop iterator function
s.keys(order) --> return an array with the keys s.keys(order) --> return an array with the keys
@ -76,7 +76,7 @@ local function var_count(v)
end end
function safer_lua.Store() function safer_lua.Store(...)
local new_t = {} local new_t = {}
local mt = {} local mt = {}
@ -171,6 +171,11 @@ function safer_lua.Store()
Data = data Data = data
end end
for idx = 1,select('#',...),2 do
local k,v = select(idx,...),select(idx+1,...)
new_t.set(k,v)
end
return setmetatable(new_t, mt) return setmetatable(new_t, mt)
end end