aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index d06bfb0bc31..43d31b68914 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -877,8 +877,6 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
if not type.isPrimitive():
raise TypeError("Need conversion for argument type '%s'" % str(type))
- typeName = builtinNames[type.tag()]
-
conversionBehavior = "eDefault"
if isEnforceRange:
conversionBehavior = "eEnforceRange"
@@ -898,10 +896,12 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
" Err(_) => { %s }\n"
"}" % (successVal, exceptionCode))
+ declType = CGGeneric(builtinNames[type.tag()])
if type.nullable():
- declType = CGGeneric("Option<" + typeName + ">")
- else:
- declType = CGGeneric(typeName)
+ declType = CGWrapper(declType, pre="Option<", post=">")
+
+ if isOptional:
+ declType = CGWrapper(declType, pre="Option<", post=">")
if defaultValue is not None:
if isinstance(defaultValue, IDLNullValue):
@@ -925,10 +925,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
" ${declName} = %s;\n"
"}" % defaultStr)).define()
- initialVal = "false" if typeName == "bool" else ("0 as %s" % typeName)
- if type.nullable():
- initialVal = "Some(%s)" % initialVal
- return (template, declType, None, isOptional, initialVal)
+ return (template, declType, None, isOptional, "None" if isOptional else None)
def instantiateJSToNativeConversionTemplate(templateTuple, replacements,
argcAndIndex=None):