diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-04-05 19:29:02 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-04-07 14:47:31 +0200 |
commit | fc31aef8b445047fd513037bd84cc7729c0ca8df (patch) | |
tree | 9a99b7bc9f8bbe75bf03720bde4b5a0e8f5adb88 /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 07520de97047916f0d15c7a63b3de20eac50f010 (diff) | |
download | servo-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.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() } } |