aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2013-10-16 18:44:41 +0100
committerSimon Sapin <simon.sapin@exyr.org>2013-10-16 18:44:41 +0100
commit6c41be9c13ef3c82fdc5a88cfbbcc0719c988cb8 (patch)
treea523b0f9c4cfbc67014fde2e248235f2c9868cb7 /src/components/script/dom
parent62f1f03c161049a4f938a7e1de5dc7fcf78219f6 (diff)
downloadservo-6c41be9c13ef3c82fdc5a88cfbbcc0719c988cb8.tar.gz
servo-6c41be9c13ef3c82fdc5a88cfbbcc0719c988cb8.zip
Add a with_imm_element_like() method.
… gives a generic element from a generic node.
Diffstat (limited to 'src/components/script/dom')
-rw-r--r--src/components/script/dom/element.rs6
-rw-r--r--src/components/script/dom/node.rs10
2 files changed, 12 insertions, 4 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index 62d591ad46b..d5e3755913b 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -120,12 +120,12 @@ pub enum ElementTypeId {
// Element methods
//
-impl<'self> ElementLike<'self> for Element {
- fn get_local_name(&'self self) -> &'self str {
+impl ElementLike for Element {
+ fn get_local_name<'a>(&'a self) -> &'a str {
self.tag_name.as_slice()
}
- fn get_attr(&'self self, name: &str) -> Option<&'self str> {
+ fn get_attr<'a>(&'a self, name: &str) -> Option<&'a str> {
// FIXME: Need an each() that links lifetimes in Rust.
for attr in self.attrs.iter() {
// FIXME: only case-insensitive in the HTML namespace (as opposed to SVG, etc.)
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs
index e8b5eb3fc16..d661e9d53d1 100644
--- a/src/components/script/dom/node.rs
+++ b/src/components/script/dom/node.rs
@@ -25,7 +25,7 @@ use extra::arc::Arc;
use js::jsapi::{JSObject, JSContext};
use netsurfcss::util::VoidPtrLike;
use newcss::complete::CompleteSelectResults;
-use servo_util::tree::{TreeNode, TreeNodeRef};
+use servo_util::tree::{TreeNode, TreeNodeRef, TreeNodeRefAsElement};
use servo_util::range::Range;
use gfx::display_list::DisplayList;
@@ -156,6 +156,14 @@ impl<View> TreeNodeRef<Node<View>> for AbstractNode<View> {
}
}
+impl<View> TreeNodeRefAsElement<Node<View>, Element> for AbstractNode<View> {
+ #[inline]
+ fn with_imm_element_like<R>(self, f: &fn(&Element) -> R) -> R {
+ self.with_imm_element(f)
+ }
+}
+
+
impl<View> TreeNode<AbstractNode<View>> for Node<View> { }
impl<'self, View> AbstractNode<View> {