@@ -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() {
@@ -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() {
@@ -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."));
}