diff options
author | Daniel Robertson <danlrobertson89@gmail.com> | 2016-02-16 19:38:11 +0000 |
---|---|---|
committer | Daniel Robertson <danlrobertson89@gmail.com> | 2016-02-16 22:40:03 +0000 |
commit | 7a35ef15556a42f2d9fab1dd01f40fb313906506 (patch) | |
tree | cbb431d15222463fddb910f4699bf54551edfbc8 /components/script/dom/bindings/js.rs | |
parent | f0d4c03bd9c9e181aa1225aec978c2f539e9aeb0 (diff) | |
download | servo-7a35ef15556a42f2d9fab1dd01f40fb313906506.tar.gz servo-7a35ef15556a42f2d9fab1dd01f40fb313906506.zip |
Implement RootedReference<T> for Option<JS<T>>
An implementation of RootedReference for Option<JS<T>> based off of
other implementations of RootedReference for Option wrapped types.
Diffstat (limited to 'components/script/dom/bindings/js.rs')
-rw-r--r-- | components/script/dom/bindings/js.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index 37d673f3c26..1736758e739 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -444,6 +444,13 @@ impl<T: Reflectable> RootedReference<T> for Option<Root<T>> { } } +/// Get an `Option<&T> out of an `Option<JS<T>>` +impl<T: Reflectable> RootedReference<T> for Option<JS<T>> { + fn r(&self) -> Option<&T> { + self.as_ref().map(|inner| &**inner) + } +} + /// Get an `Option<Option<&T>>` out of an `Option<Option<Root<T>>>` pub trait OptionalRootedReference<T> { /// Obtain a safe optional optional reference to the wrapped JS owned-value |