You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
localstable=require"stable"-- init meta info first , we have two struct and one enum now : "foo" , "bar" and "xx"localinfo=stable.init {
foo= {
hello=1, -- number , default value is 1world= { "Alice", "Bob" }, -- anonymous enumfoobar= {
foobar="", -- string
},
array="*number", -- number arraybars="*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 api
localsraw=require"stable.raw"sraw.init() -- init lightuserdata metatablelocalt=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)fork,vinpairs(t.hello) do-- or use sraw.pairsprint (k,v)
end