mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
stanza_error: Simplify serialisation.
This commit is contained in:
parent
2b9a6d57b6
commit
4f64754bdc
1 changed files with 11 additions and 14 deletions
|
@ -289,24 +289,21 @@ impl TryFrom<Element> for StanzaError {
|
|||
|
||||
impl From<StanzaError> for Element {
|
||||
fn from(err: StanzaError) -> Element {
|
||||
let mut root = Element::builder("error")
|
||||
Element::builder("error")
|
||||
.ns(ns::DEFAULT_NS)
|
||||
.attr("type", err.type_)
|
||||
.attr("by", err.by)
|
||||
.append(err.defined_condition)
|
||||
.build();
|
||||
for (lang, text) in err.texts {
|
||||
let elem = Element::builder("text")
|
||||
.append(
|
||||
err.texts.into_iter().map(|(lang, text)| {
|
||||
Element::builder("text")
|
||||
.ns(ns::XMPP_STANZAS)
|
||||
.attr("xml:lang", lang)
|
||||
.append(text)
|
||||
.build();
|
||||
root.append_child(elem);
|
||||
}
|
||||
if let Some(other) = err.other {
|
||||
root.append_child(other);
|
||||
}
|
||||
root
|
||||
.build()
|
||||
}).collect::<Vec<_>>())
|
||||
.append(err.other)
|
||||
.build()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue