aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen
diff options
context:
space:
mode:
authorTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-03-09 00:14:14 +0900
committerTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-03-20 23:41:59 +0900
commit0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d (patch)
tree25727b6e1595392fa6ea6b8e8e7eda70e4b8a662 /src/components/script/dom/bindings/codegen
parent19a7c429a1eea7b80cefb4b72138fafecc9b924a (diff)
downloadservo-0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d.tar.gz
servo-0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d.zip
Split TCast::to into TCast::to_unchecked and TCast::to.
Diffstat (limited to 'src/components/script/dom/bindings/codegen')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 0a6b241a543..317d913265f 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5791,9 +5791,16 @@ class GlobalGenRoots():
unsafe { derived.clone().transmute() }
}
- fn to<T: ${toBound}>(base: &JS<T>) -> JS<Self> {
+ fn to<T: ${toBound}>(base: &JS<T>) -> Option<JS<Self>> {
+ match base.get().${checkFn}() {
+ true => unsafe { Some(base.clone().transmute()) },
+ false => None
+ }
+ }
+
+ unsafe fn to_unchecked<T: ${toBound}>(base: &JS<T>) -> JS<Self> {
assert!(base.get().${checkFn}());
- unsafe { base.clone().transmute() }
+ base.clone().transmute()
}
}
''').substitute({'checkFn': 'is_' + name.lower(),