diff options
author | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2015-11-08 16:11:49 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2015-11-11 17:13:59 +0100 |
commit | 63aa6862b46bb342f0752fe4fc3b2f7d8d741087 (patch) | |
tree | 86cc8488357389689274468c6f1b21538466ea1f /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 75e01de627376d987cff8bc87b5f23c79e5f36af (diff) | |
download | servo-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.py | 7 |
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 |