aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py10
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() }
}