aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2015-04-05 19:29:02 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2015-04-07 14:47:31 +0200
commitfc31aef8b445047fd513037bd84cc7729c0ca8df (patch)
tree9a99b7bc9f8bbe75bf03720bde4b5a0e8f5adb88 /components/script/dom/bindings/codegen/CodegenRust.py
parent07520de97047916f0d15c7a63b3de20eac50f010 (diff)
downloadservo-fc31aef8b445047fd513037bd84cc7729c0ca8df.tar.gz
servo-fc31aef8b445047fd513037bd84cc7729c0ca8df.zip
Add casts to Temporary types
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-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() }
}