diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2013-10-16 18:44:41 +0100 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2013-10-16 18:44:41 +0100 |
commit | 6c41be9c13ef3c82fdc5a88cfbbcc0719c988cb8 (patch) | |
tree | a523b0f9c4cfbc67014fde2e248235f2c9868cb7 /src/components/script/dom | |
parent | 62f1f03c161049a4f938a7e1de5dc7fcf78219f6 (diff) | |
download | servo-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.rs | 6 | ||||
-rw-r--r-- | src/components/script/dom/node.rs | 10 |
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> { |