diff options
author | Samson <16504129+sagudev@users.noreply.github.com> | 2023-09-30 14:30:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-30 12:30:12 +0000 |
commit | ddc47aa56b2c59911b7fec018d7ae89bf2a77bee (patch) | |
tree | 754019c50c36ec2a59dcf861036d6c624490fb32 /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | ebd41d41017ee9727eb8417a0a01237b75f3e9c4 (diff) | |
download | servo-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.py | 11 |
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)]) |