aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-01-26 22:10:57 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2016-01-26 22:10:57 +0530
commita75f2cecda9b259dcfe576de53f690d9c96a36d8 (patch)
tree6407730cae2fa501dc3457ac5ce3109ef94b33fc /components/script/dom/bindings/codegen/CodegenRust.py
parenta19b14313a333c5e895e481768237275f564044f (diff)
parentd6df844ae532b45905ed616118d0d70903c0b84d (diff)
downloadservo-a75f2cecda9b259dcfe576de53f690d9c96a36d8.tar.gz
servo-a75f2cecda9b259dcfe576de53f690d9c96a36d8.zip
Auto merge of #9419 - psdh:includeTypedef, r=nox
generate typedefs in CodegenRust. fixes #9384 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9419) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 395d095c937..8d539136802 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5286,6 +5286,7 @@ class CGBindingRoot(CGThing):
isCallback=True)
enums = config.getEnums(webIDLFile)
+ typedefs = config.getTypedefs(webIDLFile)
if not (descriptors or dictionaries or mainCallbacks or callbackDescriptors or enums):
self.root = None
@@ -5294,6 +5295,17 @@ class CGBindingRoot(CGThing):
# Do codegen for all the enums.
cgthings = [CGEnum(e) for e in enums]
+ # Do codegen for all the typdefs
+ for t in typedefs:
+ if t.innerType.isUnion():
+ cgthings.extend([CGGeneric("\npub type %s = %s;\n\n" % (t.identifier.name,
+ "UnionTypes::" + str(t.innerType)))])
+ else:
+ assert not typeNeedsRooting(t.innerType, config.getDescriptorProvider)
+ cgthings.extend([CGGeneric("\npub type %s = " % (t.identifier.name)),
+ getRetvalDeclarationForType(t.innerType, config.getDescriptorProvider()),
+ CGGeneric(";\n\n")])
+
# Do codegen for all the dictionaries.
cgthings.extend([CGDictionary(d, config.getDescriptorProvider())
for d in dictionaries])