diff options
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index b828ccb74bd..65cdeb2db99 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5409,6 +5409,16 @@ impl ${name}Cast { } #[inline(always)] + pub fn to_temporary<T: ${toBound}+Reflectable>(base: Temporary<T>) -> Option<Temporary<${name}>> { + let base = base.root(); + let base = base.r(); + match base.${checkFn}() { + true => Some(Temporary::from_rooted(unsafe { base.transmute() })), + false => None + } + } + + #[inline(always)] pub fn from_ref<'a, T: ${fromBound}+Reflectable>(derived: JSRef<'a, T>) -> JSRef<'a, ${name}> { unsafe { derived.transmute() } } |