summaryrefslogtreecommitdiff
path: root/upb/bindings/lua/upb.lua
diff options
context:
space:
mode:
Diffstat (limited to 'upb/bindings/lua/upb.lua')
-rw-r--r--upb/bindings/lua/upb.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/upb/bindings/lua/upb.lua b/upb/bindings/lua/upb.lua
index ee0ad4e..728852e 100644
--- a/upb/bindings/lua/upb.lua
+++ b/upb/bindings/lua/upb.lua
@@ -66,6 +66,7 @@ end
local RealFieldDef = upb.FieldDef
local RealEnumDef = upb.EnumDef
local RealMessageDef = upb.MessageDef
+local RealOneofDef = upb.OneofDef
local RealSymbolTable = upb.SymbolTable
-- FieldDef constructor; a wrapper around the real constructor that can
@@ -136,6 +137,26 @@ upb.EnumDef = function(init)
return e
end
+-- OneofDef constructor; a wrapper around the real constructor that can
+-- set initial properties.
+--
+-- User can specify initialization values like so:
+-- upb.OneofDef{name="foo", fields={...}}
+upb.OneofDef = function(init)
+ local o = RealOneofDef()
+
+ if init then
+ for _, val in pairs(init.fields or {}) do
+ o:add(val)
+ end
+ init.fields = nil
+
+ set_named(o, init)
+ end
+
+ return o
+end
+
-- SymbolTable constructor; a wrapper around the real constructor that can
-- add an initial set of defs.
upb.SymbolTable = function(defs)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback