summaryrefslogtreecommitdiff
path: root/lang_ext/lua/test.lua
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2011-07-29 17:49:59 -0700
committerJoshua Haberman <jhaberman@gmail.com>2011-07-29 17:49:59 -0700
commit56984e8db8e1c43687535cc77fb6ce43df0b3d1f (patch)
treedc8c85d1311458a68408ff4c43d009b6193ac221 /lang_ext/lua/test.lua
parent92b4c38fa5f137cbcf835ad359bed8711c1c9c51 (diff)
Significant work on Lua extension.
Also changes in core library to accommodate.
Diffstat (limited to 'lang_ext/lua/test.lua')
-rw-r--r--lang_ext/lua/test.lua64
1 files changed, 61 insertions, 3 deletions
diff --git a/lang_ext/lua/test.lua b/lang_ext/lua/test.lua
index d7f71df..e5bf0ce 100644
--- a/lang_ext/lua/test.lua
+++ b/lang_ext/lua/test.lua
@@ -1,13 +1,46 @@
require "upb"
-symtab = upb.symtab()
+symtab = upb.SymbolTable{
+ upb.MessageDef{fqname="A", fields={
+ upb.FieldDef{name="a", type=upb.TYPE_INT32, number=1},
+ upb.FieldDef{name="b", type=upb.TYPE_DOUBLE, number=2}}
+ }
+}
+
+symtab = upb.SymbolTable{
+ upb.MessageDef{fqname="A", fields={
+ upb.FieldDef{name="a", type=upb.TYPE_INT32, number=1},
+ upb.FieldDef{name="b", type=upb.TYPE_DOUBLE, number=2}}
+ },
+ upb.MessageDef{fqname="B"}
+}
+A, B, C = symtab:lookup("A", "B")
+print(A)
+print(B)
+print(C)
+
+a = A()
+print("YO! a.a=" .. tostring(a.a))
+a.a = 2
+print("YO! a.a=" .. tostring(a.a))
+
+A = symtab:lookup("A")
+if not A then
+ error("Could not find A")
+end
f = io.open("../../src/descriptor.pb")
if not f then
error("Couldn't open descriptor.pb, try running 'make descriptorgen'")
end
symtab:parsedesc(f:read("*all"))
+symtab:load_descriptor()
+symtab:load_descriptor_file()
+
+upb.pb.load_descriptor(f:read("*all"))
+
+upb.pb.load_descriptor_file("../../src/descriptor.pb", symtab)
f = io.open("../../benchmarks/google_messages.proto.pb")
if not f then
@@ -23,10 +56,35 @@ SpeedMessage1 = symtab:lookup("benchmarks.SpeedMessage1")
SpeedMessage2 = symtab:lookup("benchmarks.SpeedMessage2")
print(SpeedMessage1:name())
-msg = SpeedMessage1()
+msg = MyType()
+msg:Decode(str)
+
+msg:DecodeJSON(str)
+
+msg = upb.pb.decode(str, MyType)
+str = upb.pb.encode(msg)
+
+msg = upb.pb.decode_text(str, MyType)
+str = upb.pb.encode_text(msg)
+
+upb.clear(msg)
+upb.msgdef(msg)
+upb.has(msg, "foo_bar")
+
+msg = upb.json.decode(str, MyType)
+
+msg = upb.pb.DecodeText(str)
+msg = upb.pb.EncodeText(msg)
+upb.
+
+upb.pb.decode_into(msg, str)
+
+str = upb.json.Encode(msg)
+upb.json.DecodeInto(msg, str)
f = assert(io.open("../../benchmarks/google_message1.dat"))
msg:Parse(f:read("*all"))
print(msg:ToText())
+print(upb.json.encode(msg))
msg = SpeedMessage2()
f = assert(io.open("../../benchmarks/google_message2.dat"))
@@ -46,4 +104,4 @@ print(msg:ToText())
-- print(msg.field129)
-- msg.field129 = 5
-- print(msg.field129)
-
+--]]
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback