Use minidom 0.6.1’s Element::has_ns(), to simplify namespace comparisons.

Emmanuel Gil Peyrot created

Change summary

src/chatstates.rs     | 3 +--
src/jingle.rs         | 3 +--
src/jingle_message.rs | 3 +--
src/stanza_error.rs   | 3 +--
4 files changed, 4 insertions(+), 8 deletions(-)

Detailed changes

src/chatstates.rs 🔗

@@ -38,8 +38,7 @@ impl TryFrom<Element> for ChatState {
     type Err = Error;
 
     fn try_from(elem: Element) -> Result<ChatState, Error> {
-        let ns = elem.ns();
-        if ns.as_ref().map(|ns| ns.as_str()) != Some(ns::CHATSTATES) {
+        if !elem.has_ns(ns::CHATSTATES) {
             return Err(Error::ParseError("This is not a chatstate element."));
         }
         for _ in elem.children() {

src/jingle.rs 🔗

@@ -208,8 +208,7 @@ impl TryFrom<Element> for ReasonElement {
         let mut reason = None;
         let mut text = None;
         for child in elem.children() {
-            let child_ns = child.ns();
-            if child_ns.as_ref().map(|ns| ns.as_str()) != Some(ns::JINGLE) {
+            if !child.has_ns(ns::JINGLE) {
                 return Err(Error::ParseError("Reason contains a foreign element."));
             }
             match child.name() {

src/jingle_message.rs 🔗

@@ -47,8 +47,7 @@ impl TryFrom<Element> for JingleMI {
     type Err = Error;
 
     fn try_from(elem: Element) -> Result<JingleMI, Error> {
-        let ns = elem.ns();
-        if ns.as_ref().map(|ns| ns.as_str()) != Some(ns::JINGLE_MESSAGE) {
+        if !elem.has_ns(ns::JINGLE_MESSAGE) {
             return Err(Error::ParseError("This is not a Jingle message element."));
         }
         Ok(match elem.name() {

src/stanza_error.rs 🔗

@@ -136,7 +136,6 @@ impl TryFrom<Element> for StanzaError {
         let mut other = None;
 
         for child in elem.children() {
-            let child_ns = child.ns();
             if child.is("text", ns::XMPP_STANZAS) {
                 for _ in child.children() {
                     return Err(Error::ParseError("Unknown element in error text."));
@@ -145,7 +144,7 @@ impl TryFrom<Element> for StanzaError {
                 if texts.insert(lang, child.text()).is_some() {
                     return Err(Error::ParseError("Text element present twice for the same xml:lang."));
                 }
-            } else if child_ns.as_ref().map(|ns| ns.as_str()) == Some(ns::XMPP_STANZAS) {
+            } else if child.has_ns(ns::XMPP_STANZAS) {
                 if defined_condition.is_some() {
                     return Err(Error::ParseError("Error must not have more than one defined-condition."));
                 }