| Index: mojo/public/tools/bindings/pylib/mojom/generate/module.py
|
| diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/module.py b/mojo/public/tools/bindings/pylib/mojom/generate/module.py
|
| index 24b49598bf15270085a6eae3b1954c06f1969484..b0dbb1d6de1b3c7533a9d2d7f2cb2cee5db1de4a 100644
|
| --- a/mojo/public/tools/bindings/pylib/mojom/generate/module.py
|
| +++ b/mojo/public/tools/bindings/pylib/mojom/generate/module.py
|
| @@ -204,6 +204,29 @@ class Struct(ReferenceKind):
|
| return field
|
|
|
|
|
| +class Union(ReferenceKind):
|
| + ReferenceKind.AddSharedProperty('name')
|
| + ReferenceKind.AddSharedProperty('module')
|
| + ReferenceKind.AddSharedProperty('imported_from')
|
| + ReferenceKind.AddSharedProperty('fields')
|
| +
|
| + def __init__(self, name=None, module=None):
|
| + if name is not None:
|
| + spec = 'x:' + name
|
| + else:
|
| + spec = None
|
| + ReferenceKind.__init__(self, spec)
|
| + self.name = name
|
| + self.module = module
|
| + self.imported_from = None
|
| + self.fields = []
|
| +
|
| + def AddField(self, name, kind, ordinal=None):
|
| + field = Field(name, kind, ordinal, default=None)
|
| + self.fields.append(field)
|
| + return field
|
| +
|
| +
|
| class Array(ReferenceKind):
|
| ReferenceKind.AddSharedProperty('kind')
|
| ReferenceKind.AddSharedProperty('length')
|
| @@ -339,7 +362,9 @@ class Module(object):
|
| self.path = name
|
| self.namespace = namespace
|
| self.structs = []
|
| + self.unions = []
|
| self.interfaces = []
|
| + self.kinds = {}
|
|
|
| def AddInterface(self, name):
|
| interface = Interface(name, module=self)
|
| @@ -347,10 +372,15 @@ class Module(object):
|
| return interface
|
|
|
| def AddStruct(self, name):
|
| - struct=Struct(name, module=self)
|
| + struct = Struct(name, module=self)
|
| self.structs.append(struct)
|
| return struct
|
|
|
| + def AddUnion(self, name):
|
| + union = Union(name, module=self)
|
| + self.unions.append(union)
|
| + return union
|
| +
|
|
|
| def IsBoolKind(kind):
|
| return kind.spec == BOOL.spec
|
|
|