rsm: Switch to Into/TryFrom.

This commit is contained in:
Emmanuel Gil Peyrot 2017-05-06 20:14:45 +01:00
commit de8fe4bf02
2 changed files with 115 additions and 108 deletions

View file

@ -4,6 +4,8 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
use std::convert::TryFrom;
use minidom::Element;
use jid::Jid;
@ -11,7 +13,6 @@ use error::Error;
use data_forms;
use data_forms::DataForm;
use rsm;
use rsm::Set;
use forwarding;
use forwarding::Forwarded;
@ -63,7 +64,7 @@ pub fn parse_query(root: &Element) -> Result<Query, Error> {
if child.is("x", ns::DATA_FORMS) {
form = Some(data_forms::parse_data_form(child)?);
} else if child.is("set", ns::RSM) {
set = Some(rsm::parse_rsm(child)?);
set = Some(Set::try_from(child)?);
} else {
return Err(Error::ParseError("Unknown child in query element."));
}
@ -117,7 +118,7 @@ pub fn parse_fin(root: &Element) -> Result<Fin, Error> {
let mut set = None;
for child in root.children() {
if child.is("set", ns::RSM) {
set = Some(rsm::parse_rsm(child)?);
set = Some(Set::try_from(child)?);
} else {
return Err(Error::ParseError("Unknown child in fin element."));
}
@ -179,7 +180,7 @@ pub fn serialise_query(query: &Query) -> Element {
// elem.append_child(data_forms::serialise(&form));
//}
if let Some(ref set) = query.set {
elem.append_child(rsm::serialise(&set));
elem.append_child(set.into());
}
elem
}
@ -202,7 +203,7 @@ pub fn serialise_fin(fin: &Fin) -> Element {
false => None,
})
.build();
elem.append_child(rsm::serialise(&fin.set));
elem.append_child((&fin.set).into());
elem
}