mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
generate typedefs in CodegenRust
This commit is contained in:
parent
525e77f64f
commit
d6df844ae5
2 changed files with 16 additions and 0 deletions
|
@ -5283,6 +5283,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
|
||||
|
@ -5291,6 +5292,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])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue