aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <ecoal95@gmail.com>2015-11-08 16:11:49 +0100
committerEmilio Cobos Álvarez <ecoal95@gmail.com>2015-11-11 17:13:59 +0100
commit63aa6862b46bb342f0752fe4fc3b2f7d8d741087 (patch)
tree86cc8488357389689274468c6f1b21538466ea1f /components/script/dom/bindings/codegen/CodegenRust.py
parent75e01de627376d987cff8bc87b5f23c79e5f36af (diff)
downloadservo-63aa6862b46bb342f0752fe4fc3b2f7d8d741087.tar.gz
servo-63aa6862b46bb342f0752fe4fc3b2f7d8d741087.zip
Implement WebIDL sequence return values
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 5ac6c455e39..260ef1e9006 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1295,7 +1295,12 @@ def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType.isObject() or returnType.isSpiderMonkeyInterface():
return CGGeneric("*mut JSObject")
if returnType.isSequence():
- raise TypeError("We don't support sequence return values")
+ inner = returnType.unroll()
+ result = getRetvalDeclarationForType(inner, descriptorProvider)
+ result = CGWrapper(result, pre="Vec<", post=">")
+ if returnType.nullable():
+ result = CGWrapper(result, pre="Option<", post=">")
+ return result
if returnType.isDictionary():
nullable = returnType.nullable()
dictName = returnType.inner.name if nullable else returnType.name