1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- local protobuf = require "protobuf"
- addr = io.open("../../build/addressbook.pb","rb")
- buffer = addr:read "*a"
- addr:close()
- protobuf.register(buffer)
- t = protobuf.decode("google.protobuf.FileDescriptorSet", buffer)
- proto = t.file[1]
- print(proto.name)
- print(proto.package)
- message = proto.message_type
- for _,v in ipairs(message) do
- print(v.name)
- for _,v in ipairs(v.field) do
- print("\t".. v.name .. " ["..v.number.."] " .. v.label)
- end
- end
- addressbook = {
- name = "Alice",
- id = 12345,
- phone = {
- { number = "1301234567" },
- { number = "87654321", type = "WORK" },
- }
- }
- code = protobuf.encode("tutorial.Person", addressbook)
- decode = protobuf.decode("tutorial.Person" , code)
- print(decode.name)
- print(decode.id)
- for _,v in ipairs(decode.phone) do
- print("\t"..v.number, v.type)
- end
- phonebuf = protobuf.pack("tutorial.Person.PhoneNumber number","87654321")
- buffer = protobuf.pack("tutorial.Person name id phone", "Alice", 123, { phonebuf })
- print(protobuf.unpack("tutorial.Person name id phone", buffer))
|