aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorSamson <16504129+sagudev@users.noreply.github.com>2023-09-30 14:30:12 +0200
committerGitHub <noreply@github.com>2023-09-30 12:30:12 +0000
commitddc47aa56b2c59911b7fec018d7ae89bf2a77bee (patch)
tree754019c50c36ec2a59dcf861036d6c624490fb32 /components/script/dom/bindings/codegen/CodegenRust.py
parentebd41d41017ee9727eb8417a0a01237b75f3e9c4 (diff)
downloadservo-ddc47aa56b2c59911b7fec018d7ae89bf2a77bee.tar.gz
servo-ddc47aa56b2c59911b7fec018d7ae89bf2a77bee.zip
Codegen support multiple interfaces in single webidl file & WebGPU single webidl (#30448)
* Codegen support multiple interfaces in single webidl file * Merge GPU*.webidl into WebGPU.webidl * Update gpu files to use WebGPUBinding module file
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index ad53b2268b4..eff03384447 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -76,6 +76,13 @@ def toBindingModuleFile(arg):
return re.sub("((_workers)?$)", "Binding\\1", MakeNativeName(arg))
+def toBindingModuleFileFromDescriptor(desc):
+ if desc.maybeGetSuperModule() is not None:
+ return toBindingModuleFile(desc.maybeGetSuperModule())
+ else:
+ return toBindingModuleFile(desc.name)
+
+
def stripTrailingWhitespace(text):
tail = '\n' if text.endswith('\n') else ''
lines = text.splitlines()
@@ -8068,8 +8075,8 @@ class GlobalGenRoots():
def InterfaceObjectMapData(config):
pairs = []
for d in config.getDescriptors(hasInterfaceObject=True, isInline=False):
+ binding_mod = toBindingModuleFileFromDescriptor(d)
binding_ns = toBindingNamespace(d.name)
- binding_mod = toBindingModuleFile(d.name)
pairs.append((d.name, binding_mod, binding_ns))
for alias in d.interface.legacyWindowAliases:
pairs.append((alias, binding_mod, binding_ns))
@@ -8142,7 +8149,7 @@ class GlobalGenRoots():
return getModuleFromObject(d).split('::')[-1]
descriptors = config.getDescriptors(register=True, isIteratorInterface=False)
- descriptors = (set(toBindingModuleFile(d.name) for d in descriptors)
+ descriptors = (set(toBindingModuleFile(d.name) for d in descriptors if d.maybeGetSuperModule() is None)
| set(leafModule(d) for d in config.callbacks)
| set(leafModule(d) for d in config.getDictionaries()))
curr = CGList([CGGeneric("pub mod %s;\n" % name) for name in sorted(descriptors)])