在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):cloudwu/lua-stable开源软件地址(OpenSource Url):https://github.com/cloudwu/lua-stable开源编程语言(OpenSource Language):C 69.1%开源软件介绍(OpenSource Introduction):Share table between lua stateslua api with meta info supportlocal stable = require "stable"
-- init meta info first , we have two struct and one enum now : "foo" , "bar" and "xx"
local info = stable.init {
foo = {
hello = 1, -- number , default value is 1
world = { "Alice", "Bob" }, -- anonymous enum
foobar = {
foobar = "", -- string
},
array = "*number", -- number array
bars = "*bar", -- struct bar array
},
bar = {
first = true,
second = 1,
third = "*xx", -- enum xx array
},
xx = { "ONE", "TWO" }
}
-- create an object with type "foo"
a = stable.create "foo"
a.world = "Alice"
a.foobar = "xxx"
a.bars[1] = { second = 2 }
a.bars[2] = { third = { "ONE" , "ONE" , "TWO" } }
raw apilocal sraw = require "stable.raw"
sraw.init() -- init lightuserdata metatable
local t = sraw.create()
t.hello = { world = true }
-- If you don't want to set explicit, use this :
-- sraw.set(t,"hello", { world = true })
print(t.hello.world)
-- or use this :
-- hello = sraw.get(t,"hello") ; print( sraw.get(hello, "world"))
-- you can send t (a lightuserdata) to other lua state. (thread safe)
for k,v in pairs(t.hello) do -- or use sraw.pairs
print (k,v)
end
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论