local minilight_raw = require("minilight_raw")
local mod = minilight_raw
function mod.init() mod.useState_index = 0 end
function mod.useState(def)
mod.useState_index = mod.useState_index + 1
local index = mod.useState_index
if (type(def) == "number") then
local ref = minilight_raw.newState_number(index, def)
return {
value = minilight_raw.readState_number(ref),
write = function(v)
return minilight_raw.writeState_number(ref, v)
end
}
elseif (type(def) == "string") then
local ref = minilight_raw.newState_string(index, def)
return {
value = minilight_raw.readState_string(ref),
write = function(v)
return minilight_raw.writeState_string(ref, v)
end
}
elseif (type(def) == "bool") then
local ref = minilight_raw.newState_bool(index, def)
return {
value = minilight_raw.readState_bool(ref),
write = function(v)
return minilight_raw.writeState_bool(ref, v)
end
}
else
error("Type(" .. type(def) .. ") is not supported!")
end
end
return mod