From 30c3df710bbfe2335b36b7052fa4add54ec7a1de Mon Sep 17 00:00:00 2001 From: "Brian J. Burg" Date: Thu, 20 Sep 2012 15:02:42 -0700 Subject: [PATCH] Implement dom::element::Element.{get_attr, set_attr} --- src/servo/dom/element.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/servo/dom/element.rs b/src/servo/dom/element.rs index 80370d26c4f..903c72c1e82 100644 --- a/src/servo/dom/element.rs +++ b/src/servo/dom/element.rs @@ -10,20 +10,20 @@ struct ElementData { } impl ElementData { - fn get_attr(attr_name: ~str) -> Option<~str> { - let mut i = 0u; - while i < self.attrs.len() { - if attr_name == self.attrs[i].name { - return Some(copy self.attrs[i].value); - } - i += 1u; + fn get_attr(name: ~str) -> Option<~str> { + let found = do self.attrs.find |attr| { attr.name == name }; + match found { + Some(attr) => Some(copy attr.value), + None => None } - - None } - fn set_attr(_attr_name: ~str, attr_value: ~str) { - // TODO: add new attr of name, or delete old one + fn set_attr(name: ~str, value: ~str) { + let idx = do self.attrs.position |attr| { attr.name == name }; + match idx { + Some(idx) => self.attrs.set_elt(idx, ~Attr(name, value)), + None => {} + } } }