diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-07-13 00:57:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-13 00:57:35 -0700 |
commit | 902e6322e0d8768acf5349d20e1328e6b15a446c (patch) | |
tree | 09fdfbc57c4aa97a356ef950d0d36ca994535b78 /components/script/dom | |
parent | 5d98ee61bbdb76e179bc62c0366438e28abe79a9 (diff) | |
parent | 87800fa902115b92f145bba2374932d5f6ac4093 (diff) | |
download | servo-902e6322e0d8768acf5349d20e1328e6b15a446c.tar.gz servo-902e6322e0d8768acf5349d20e1328e6b15a446c.zip |
Auto merge of #12419 - GuillaumeGomez:try_from, r=Ms2ger
Replace AdjacentPosition::parse by TryFrom
Fixes #12387.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12419)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/element.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 6b671d6fe6b..a4c1ed28583 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -78,6 +78,7 @@ use selectors::parser::{AttrSelector, NamespaceConstraint, parse_author_origin_s use std::ascii::AsciiExt; use std::borrow::Cow; use std::cell::{Cell, Ref}; +use std::convert::TryFrom; use std::default::Default; use std::mem; use std::sync::Arc; @@ -126,8 +127,10 @@ pub enum AdjacentPosition { BeforeEnd, } -impl AdjacentPosition { - pub fn parse(position: &str) -> Fallible<AdjacentPosition> { +impl<'a> TryFrom<&'a str> for AdjacentPosition { + type Err = Error; + + fn try_from(position: &'a str) -> Result<AdjacentPosition, Self::Err> { match_ignore_ascii_case! { &*position, "beforebegin" => Ok(AdjacentPosition::BeforeBegin), "afterbegin" => Ok(AdjacentPosition::AfterBegin), @@ -2028,7 +2031,7 @@ impl ElementMethods for Element { // https://dom.spec.whatwg.org/#dom-element-insertadjacentelement fn InsertAdjacentElement(&self, where_: DOMString, element: &Element) -> Fallible<Option<Root<Element>>> { - let where_ = try!(AdjacentPosition::parse(&*where_)); + let where_ = try!(AdjacentPosition::try_from(&*where_)); let inserted_node = try!(self.insert_adjacent(where_, element.upcast())); Ok(inserted_node.map(|node| Root::downcast(node).unwrap())) } @@ -2040,7 +2043,7 @@ impl ElementMethods for Element { let text = Text::new(data, &document_from_node(self)); // Step 2. - let where_ = try!(AdjacentPosition::parse(&*where_)); + let where_ = try!(AdjacentPosition::try_from(&*where_)); self.insert_adjacent(where_, text.upcast()).map(|_| ()) } @@ -2048,7 +2051,7 @@ impl ElementMethods for Element { fn InsertAdjacentHTML(&self, position: DOMString, text: DOMString) -> ErrorResult { // Step 1. - let position = try!(AdjacentPosition::parse(&*position)); + let position = try!(AdjacentPosition::try_from(&*position)); let context = match position { AdjacentPosition::BeforeBegin | AdjacentPosition::AfterEnd => { |