disco: Use a reference everywhere, instead of taking ownership.

This commit is contained in:
Emmanuel Gil Peyrot 2017-04-20 21:53:46 +01:00
parent 1190dd9001
commit 83cf57abd0

View file

@ -106,29 +106,29 @@ pub fn parse_disco(root: &Element) -> Result<Disco, Error> {
});
}
pub fn serialise_disco(disco: Disco) -> Element {
pub fn serialise_disco(disco: &Disco) -> Element {
let mut root = Element::builder("query")
.ns(DISCO_INFO_NS)
.attr("node", disco.node)
.attr("node", disco.node.clone())
.build();
for identity in disco.identities {
for identity in &disco.identities {
let identity_element = Element::builder("identity")
.ns(DISCO_INFO_NS)
.attr("category", identity.category)
.attr("type", identity.type_)
.attr("xml:lang", identity.xml_lang)
.attr("name", identity.name)
.attr("category", identity.category.clone())
.attr("type", identity.type_.clone())
.attr("xml:lang", identity.xml_lang.clone())
.attr("name", identity.name.clone())
.build();
root.append_child(identity_element);
}
for feature in disco.features {
for feature in &disco.features {
let feature_element = Element::builder("feature")
.ns(DISCO_INFO_NS)
.attr("var", feature.var)
.attr("var", feature.var.clone())
.build();
root.append_child(feature_element);
}
for _ in disco.extensions {
for _ in &disco.extensions {
panic!("Not yet implemented!");
}
root