Detailed changes
@@ -11,7 +11,8 @@ use xmpp_parsers::{
disco::DiscoInfoResult,
ecaps2::{compute_disco as compute_disco_ecaps2, hash_ecaps2, ECaps2},
hashes::Algo,
- Element, Error,
+ minidom::Element,
+ Error,
};
fn get_caps(disco: &DiscoInfoResult, node: String) -> Result<Caps, String> {
@@ -18,7 +18,7 @@ impl MessagePayload for Attention {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError};
@@ -66,7 +66,7 @@ impl PubSubPayload for Data {}
mod tests {
use super::*;
use crate::hashes::Algo;
- use crate::Element;
+ use minidom::Element;
#[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError};
@@ -6,8 +6,8 @@
use crate::iq::{IqResultPayload, IqSetPayload};
use crate::ns;
-use crate::Element;
use jid::{FullJid, Jid};
+use minidom::Element;
use std::str::FromStr;
use xso::error::{Error, FromElementError};
@@ -6,7 +6,7 @@
use crate::mam;
use crate::ns;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
/// Represents the `<bind/>` element, as sent by the server in SASLβ―2 to advertise which features
@@ -180,7 +180,6 @@ impl From<Bound> for Element {
#[cfg(test)]
mod tests {
use super::*;
- use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -8,8 +8,8 @@ use xso::{AsXml, FromXml};
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns;
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use xso::error::FromElementError;
/// The element requesting the blocklist, the result iq will contain a
@@ -114,7 +114,7 @@ pub struct Data {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::FromElementError;
#[cfg(target_pointer_width = "32")]
@@ -98,7 +98,7 @@ impl Storage {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -15,7 +15,7 @@
//! This module exposes the [`Autojoin`][crate::bookmarks2::Autojoin] boolean flag, the [`Conference`][crate::bookmarks2::Conference] chatroom element, and the [BOOKMARKS2][crate::ns::BOOKMARKS2] XML namespace.
use crate::ns;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
generate_attribute!(
@@ -9,10 +9,10 @@ use crate::disco::{DiscoInfoQuery, DiscoInfoResult, Feature, Identity};
use crate::hashes::{Algo, Hash};
use crate::ns;
use crate::presence::PresencePayload;
-use crate::Element;
use base64::{engine::general_purpose::STANDARD as Base64, Engine};
use blake2::Blake2bVar;
use digest::{Digest, Update, VariableOutput};
+use minidom::Element;
use sha1::Sha1;
use sha2::{Sha256, Sha512};
use sha3::{Sha3_256, Sha3_512};
@@ -60,7 +60,7 @@ impl MessagePayload for Sent {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -120,7 +120,7 @@ impl IqSetPayload for Revoke {}
mod tests {
use super::*;
use crate::ns;
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
#[cfg(target_pointer_width = "32")]
@@ -33,7 +33,7 @@ impl MessagePayload for ChatState {}
mod tests {
use super::*;
use crate::ns;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[test]
@@ -43,7 +43,7 @@ impl Handshake {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -27,7 +27,7 @@ pub struct Active;
mod tests {
use super::*;
use crate::ns;
- use crate::Element;
+ use minidom::Element;
#[test]
fn test_size() {
@@ -7,7 +7,7 @@
use crate::data_forms_validate::Validate;
use crate::media_element::MediaElement;
use crate::ns;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
generate_element!(
@@ -8,10 +8,12 @@ use std::fmt::{Display, Formatter};
use std::str::FromStr;
use minidom::{Element, IntoAttributeValue};
-use xso::{error::FromElementError, AsXml, FromXml};
+use xso::{
+ error::{Error, FromElementError},
+ AsXml, FromXml,
+};
use crate::ns::{self, XDATA_VALIDATE};
-use crate::Error;
/// Validation Method
#[derive(Debug, Clone, PartialEq)]
@@ -35,8 +35,8 @@ impl PresencePayload for Delay {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
use jid::BareJid;
+ use minidom::Element;
use std::str::FromStr;
use xso::error::{Error, FromElementError};
@@ -13,8 +13,8 @@ use crate::data_forms::{DataForm, DataFormType};
use crate::iq::{IqGetPayload, IqResultPayload};
use crate::ns;
use crate::rsm::{SetQuery, SetResult};
-use crate::Element;
use jid::Jid;
+use minidom::Element;
/// Structure representing a `<query xmlns='http://jabber.org/protocol/disco#info'/>` element.
///
@@ -186,7 +186,7 @@ pub fn query_ecaps2(hash: Hash) -> DiscoInfoQuery {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::FromElementError;
#[cfg(target_pointer_width = "32")]
@@ -28,7 +28,7 @@ impl MessagePayload for ExplicitMessageEncryption {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -143,7 +143,7 @@ impl IqResultPayload for Credentials {}
mod tests {
use super::*;
use crate::ns;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -77,7 +77,7 @@ pub struct Token {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
#[test]
@@ -26,7 +26,7 @@ generate_element!(
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -244,7 +244,7 @@ impl Deref for Sha1HexAttribute {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::FromElementError;
#[cfg(target_pointer_width = "32")]
@@ -11,7 +11,7 @@ use xso::{
use crate::iq::{IqGetPayload, IqResultPayload};
use crate::ns;
-use crate::Element;
+use minidom::Element;
/// Requesting a slot
#[derive(FromXml, AsXml, Debug, Clone, PartialEq)]
@@ -76,7 +76,7 @@ impl IqSetPayload for Close {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -7,7 +7,7 @@
use crate::data_forms::DataForm;
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns;
-use crate::Element;
+use minidom::Element;
use std::collections::HashMap;
use xso::error::{Error, FromElementError};
@@ -24,7 +24,7 @@ impl PresencePayload for Idle {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
use xso::error::{Error, FromElementError};
@@ -7,8 +7,8 @@
use crate::ns;
use crate::stanza_error::StanzaError;
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use minidom::IntoAttributeValue;
use xso::error::{Error, FromElementError};
@@ -43,8 +43,8 @@ impl IqResultPayload for JidPrepResponse {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
use jid::FullJid;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -11,8 +11,8 @@ use crate::jingle_ice_udp::Transport as IceUdpTransport;
use crate::jingle_rtp::Description as RtpDescription;
use crate::jingle_s5b::Transport as Socks5Transport;
use crate::ns;
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use std::collections::BTreeMap;
use std::fmt;
use std::str::FromStr;
@@ -72,7 +72,7 @@ impl Fingerprint {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -54,7 +54,7 @@ generate_element!(
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -24,7 +24,7 @@ attributes: [
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -128,7 +128,7 @@ mod tests {
use super::*;
use crate::hashes::Algo;
use crate::jingle_dtls_srtp::Setup;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -6,7 +6,7 @@
use crate::jingle::SessionId;
use crate::ns;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
/// Defines a protocol for broadcasting Jingle requests to all of the clients
@@ -68,7 +68,7 @@ pub struct Candidate {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -24,7 +24,7 @@ pub struct RtcpFb {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -154,7 +154,7 @@ pub struct Parameter {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -55,7 +55,7 @@ impl RtpHdrext {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -5,8 +5,8 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
use crate::ns;
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use std::net::IpAddr;
use xso::error::{Error, FromElementError};
@@ -83,7 +83,7 @@ generate_element!(
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -184,7 +184,7 @@ impl MessagePayload for Encrypted {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[test]
fn parse_bundle() {
@@ -23,16 +23,18 @@
#![warn(missing_docs)]
-pub use xso::error::{Error, FromElementError};
-// TODO: only export top-level module on the next major release
-pub use jid::{self, BareJid, Error as JidParseError, FullJid, Jid};
-pub use minidom::Element;
-
pub use blake2;
+pub use jid;
+pub use minidom;
pub use sha1;
pub use sha2;
pub use sha3;
+// We normally only reexport entire crates, but xso is a special case since it uses proc macros
+// which require it to be directly imported as a crate. The only useful symbol we have to reexport
+// is its error type, which we expose in all of our return types.
+pub use xso::error::Error;
+
/// XML namespace definitions used through XMPP.
pub mod ns;
@@ -17,7 +17,7 @@ use crate::message::MessagePayload;
use crate::ns;
use crate::pubsub::NodeName;
use crate::rsm::{SetQuery, SetResult};
-use crate::Element;
+use minidom::Element;
use minidom::Node;
generate_id!(
@@ -46,7 +46,7 @@ generate_element!(
mod tests {
use super::*;
use crate::data_forms::DataForm;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -5,8 +5,8 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
use crate::ns;
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use std::collections::BTreeMap;
use xso::error::{Error, FromElementError};
@@ -24,7 +24,7 @@ impl MessagePayload for Replace {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -254,7 +254,7 @@ impl Destroy {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[test]
fn participant() {
@@ -271,7 +271,7 @@ generate_elem_id!(
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -99,7 +99,7 @@ impl Muc {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
use xso::error::{Error, FromElementError};
@@ -13,7 +13,7 @@ use xso::{
use crate::message::MessagePayload;
use crate::ns;
use crate::presence::PresencePayload;
-use crate::Element;
+use minidom::Element;
use jid::FullJid;
@@ -310,7 +310,7 @@ mod tests {
use super::*;
use crate::message::Message;
use crate::presence::{Presence, Type as PresenceType};
- use crate::Jid;
+ use jid::Jid;
#[test]
fn test_simple() {
@@ -14,7 +14,7 @@ generate_elem_id!(
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError};
@@ -28,7 +28,7 @@ impl PresencePayload for OccupantId {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -23,7 +23,7 @@ impl MessagePayload for Oob {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -67,7 +67,7 @@ mod tests {
pubsub::{Item as PubSubItem, Publish},
Item, NodeName,
};
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
#[test]
@@ -21,7 +21,7 @@ impl IqGetPayload for Ping {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError};
@@ -9,8 +9,8 @@ use crate::date::DateTime;
use crate::message::MessagePayload;
use crate::ns;
use crate::pubsub::{Item as PubSubItem, ItemId, NodeName, Subscription, SubscriptionId};
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use xso::error::{Error, FromElementError};
/// Event wrapper for a PubSub `<item/>`.
@@ -18,7 +18,8 @@ pub use self::event::PubSubEvent;
pub use self::owner::PubSubOwner;
pub use self::pubsub::PubSub;
-use crate::{Element, Jid};
+use jid::Jid;
+use minidom::Element;
generate_id!(
/// The name of a PubSub node, used to identify it on a JID.
@@ -105,4 +106,4 @@ impl Item {
}
/// This trait should be implemented on any element which can be included as a PubSub payload.
-pub trait PubSubPayload: ::std::convert::TryFrom<crate::Element> + Into<crate::Element> {}
+pub trait PubSubPayload: TryFrom<Element> + Into<Element> {}
@@ -11,8 +11,8 @@ use crate::data_forms::DataForm;
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns;
use crate::pubsub::{AffiliationAttribute, NodeName, Subscription};
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use xso::error::{Error, FromElementError};
generate_element!(
@@ -15,8 +15,8 @@ use crate::ns;
use crate::pubsub::{
AffiliationAttribute, Item as PubSubItem, NodeName, Subscription, SubscriptionId,
};
-use crate::Element;
use jid::Jid;
+use minidom::Element;
// TODO: a better solution would be to split this into a query and a result elements, like for
// XEP-0030.
@@ -36,7 +36,7 @@ pub struct Reaction {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -33,7 +33,7 @@ impl MessagePayload for Received {}
mod tests {
use super::*;
use crate::ns;
- use crate::Element;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -91,7 +91,7 @@ impl IqResultPayload for Roster {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
use xso::error::{Error, FromElementError};
@@ -5,7 +5,7 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
use crate::ns;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
/// Requests paging through a potentially big set of items (represented by an
@@ -7,7 +7,7 @@
use xso::{text::EmptyAsNone, AsXml, FromXml};
use crate::ns;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
generate_attribute!(
@@ -11,7 +11,7 @@ use xso::{
};
use crate::ns;
-use crate::Element;
+use minidom::Element;
use std::collections::BTreeMap;
generate_attribute!(
@@ -146,7 +146,7 @@ pub struct StreamManagement;
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -7,8 +7,8 @@
use crate::message::MessagePayload;
use crate::ns;
use crate::presence::PresencePayload;
-use crate::Element;
use jid::Jid;
+use minidom::Element;
use minidom::Node;
use std::collections::BTreeMap;
use std::convert::TryFrom;
@@ -41,8 +41,8 @@ impl MessagePayload for OriginId {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
use jid::BareJid;
+ use minidom::Element;
use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")]
@@ -81,7 +81,7 @@ impl Stream {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -9,8 +9,8 @@ use xso::{AsXml, FromXml};
use crate::date::DateTime;
use crate::iq::{IqGetPayload, IqResultPayload};
use crate::ns;
-use crate::Element;
use chrono::FixedOffset;
+use minidom::Element;
use std::str::FromStr;
use xso::error::{Error, FromElementError};
@@ -6,7 +6,7 @@
use crate::ns;
use crate::pubsub::PubSubPayload;
-use crate::Element;
+use minidom::Element;
use xso::error::{Error, FromElementError};
generate_elem_id!(
@@ -288,9 +288,9 @@ macro_rules! generate_element_enum {
$enum
),+
}
- impl ::std::convert::TryFrom<crate::Element> for $elem {
+ impl ::std::convert::TryFrom<minidom::Element> for $elem {
type Error = xso::error::FromElementError;
- fn try_from(elem: crate::Element) -> Result<$elem, xso::error::FromElementError> {
+ fn try_from(elem: minidom::Element) -> Result<$elem, xso::error::FromElementError> {
check_ns_only!(elem, $name, $ns);
check_no_children!(elem, $name);
check_no_attributes!(elem, $name);
@@ -300,9 +300,9 @@ macro_rules! generate_element_enum {
})
}
}
- impl From<$elem> for crate::Element {
- fn from(elem: $elem) -> crate::Element {
- crate::Element::builder(
+ impl From<$elem> for minidom::Element {
+ fn from(elem: $elem) -> minidom::Element {
+ minidom::Element::builder(
match elem {
$($elem::$enum => $enum_name,)+
},
@@ -324,9 +324,9 @@ macro_rules! generate_attribute_enum {
$enum
),+
}
- impl ::std::convert::TryFrom<crate::Element> for $elem {
+ impl ::std::convert::TryFrom<minidom::Element> for $elem {
type Error = xso::error::FromElementError;
- fn try_from(elem: crate::Element) -> Result<$elem, xso::error::FromElementError> {
+ fn try_from(elem: minidom::Element) -> Result<$elem, xso::error::FromElementError> {
check_ns_only!(elem, $name, $ns);
check_no_children!(elem, $name);
check_no_unknown_attributes!(elem, $name, [$attr]);
@@ -336,9 +336,9 @@ macro_rules! generate_attribute_enum {
})
}
}
- impl From<$elem> for crate::Element {
- fn from(elem: $elem) -> crate::Element {
- crate::Element::builder($name, crate::ns::$ns)
+ impl From<$elem> for minidom::Element {
+ fn from(elem: $elem) -> minidom::Element {
+ minidom::Element::builder($name, crate::ns::$ns)
.attr($attr, match elem {
$($elem::$enum => $enum_name,)+
})
@@ -467,9 +467,9 @@ macro_rules! generate_elem_id {
$(#[$meta])*
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct $elem(pub $type);
- impl ::std::convert::TryFrom<crate::Element> for $elem {
+ impl ::std::convert::TryFrom<minidom::Element> for $elem {
type Error = xso::error::FromElementError;
- fn try_from(elem: crate::Element) -> Result<$elem, xso::error::FromElementError> {
+ fn try_from(elem: minidom::Element) -> Result<$elem, xso::error::FromElementError> {
check_self!(elem, $name, $ns);
check_no_children!(elem, $name);
check_no_attributes!(elem, $name);
@@ -477,9 +477,9 @@ macro_rules! generate_elem_id {
Ok($elem(elem.text().parse().map_err(xso::error::Error::text_parse_error)?))
}
}
- impl From<$elem> for crate::Element {
- fn from(elem: $elem) -> crate::Element {
- crate::Element::builder($name, crate::ns::$ns)
+ impl From<$elem> for minidom::Element {
+ fn from(elem: $elem) -> minidom::Element {
+ minidom::Element::builder($name, crate::ns::$ns)
.append(elem.0.to_string())
.build()
}
@@ -637,27 +637,27 @@ macro_rules! finish_parse_elem {
macro_rules! generate_serialiser {
($builder:ident, $parent:ident, $elem:ident, Required, String, ($name:tt, $ns:ident)) => {
$builder.append(
- crate::Element::builder($name, crate::ns::$ns)
+ minidom::Element::builder($name, crate::ns::$ns)
.append(::minidom::Node::Text($parent.$elem)),
)
};
($builder:ident, $parent:ident, $elem:ident, Option, String, ($name:tt, $ns:ident)) => {
$builder.append_all($parent.$elem.map(|elem| {
- crate::Element::builder($name, crate::ns::$ns).append(::minidom::Node::Text(elem))
+ minidom::Element::builder($name, crate::ns::$ns).append(::minidom::Node::Text(elem))
}))
};
($builder:ident, $parent:ident, $elem:ident, Option, $constructor:ident, ($name:tt, *)) => {
$builder.append_all(
$parent
.$elem
- .map(|elem| ::minidom::Node::Element(crate::Element::from(elem))),
+ .map(|elem| ::minidom::Node::Element(minidom::Element::from(elem))),
)
};
($builder:ident, $parent:ident, $elem:ident, Option, $constructor:ident, ($name:tt, $ns:ident)) => {
$builder.append_all(
$parent
.$elem
- .map(|elem| ::minidom::Node::Element(crate::Element::from(elem))),
+ .map(|elem| ::minidom::Node::Element(minidom::Element::from(elem))),
)
};
($builder:ident, $parent:ident, $elem:ident, Vec, $constructor:ident, ($name:tt, $ns:ident)) => {
@@ -667,11 +667,11 @@ macro_rules! generate_serialiser {
$builder.append_all(
$parent
.$elem
- .then(|| crate::Element::builder($name, crate::ns::$ns)),
+ .then(|| minidom::Element::builder($name, crate::ns::$ns)),
)
};
($builder:ident, $parent:ident, $elem:ident, $_:ident, $constructor:ident, ($name:tt, $ns:ident)) => {
- $builder.append(::minidom::Node::Element(crate::Element::from(
+ $builder.append(::minidom::Node::Element(minidom::Element::from(
$parent.$elem,
)))
};
@@ -734,10 +734,10 @@ macro_rules! generate_element {
}
}
- impl ::std::convert::TryFrom<crate::Element> for $elem {
+ impl ::std::convert::TryFrom<minidom::Element> for $elem {
type Error = xso::error::FromElementError;
- fn try_from(mut elem: crate::Element) -> Result<$elem, xso::error::FromElementError> {
+ fn try_from(mut elem: minidom::Element) -> Result<$elem, xso::error::FromElementError> {
check_self!(elem, $name, $ns);
check_no_unknown_attributes!(elem, $name, [$($attr_name),*]);
$(
@@ -790,9 +790,9 @@ macro_rules! generate_element {
}
}
- impl From<$elem> for crate::Element {
- fn from(elem: $elem) -> crate::Element {
- let mut builder = crate::Element::builder($name, crate::ns::$ns);
+ impl From<$elem> for minidom::Element {
+ fn from(elem: $elem) -> minidom::Element {
+ let mut builder = minidom::Element::builder($name, crate::ns::$ns);
$(
builder = builder.attr($attr_name, elem.$attr);
)*
@@ -827,10 +827,10 @@ macro_rules! assert_size (
// TODO: move that to src/pubsub/mod.rs, once we figure out how to use macros from there.
macro_rules! impl_pubsub_item {
($item:ident, $ns:ident) => {
- impl ::std::convert::TryFrom<crate::Element> for $item {
+ impl ::std::convert::TryFrom<minidom::Element> for $item {
type Error = FromElementError;
- fn try_from(mut elem: crate::Element) -> Result<$item, FromElementError> {
+ fn try_from(mut elem: minidom::Element) -> Result<$item, FromElementError> {
check_self!(elem, "item", $ns);
check_no_unknown_attributes!(elem, "item", ["id", "publisher"]);
let mut payloads = elem.take_contents_as_children().collect::<Vec<_>>();
@@ -846,9 +846,9 @@ macro_rules! impl_pubsub_item {
}
}
- impl From<$item> for crate::Element {
- fn from(item: $item) -> crate::Element {
- crate::Element::builder("item", ns::$ns)
+ impl From<$item> for minidom::Element {
+ fn from(item: $item) -> minidom::Element {
+ minidom::Element::builder("item", ns::$ns)
.attr("id", item.0.id)
.attr("publisher", item.0.publisher)
.append_all(item.0.payload)
@@ -13,11 +13,11 @@
//! For vCard updates defined in [XEP-0153](https://xmpp.org/extensions/xep-0153.html),
//! see [`vcard_update`][crate::vcard_update] module.
-use xso::{AsXml, FromXml};
+use xso::{error::Error, AsXml, FromXml};
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
+use crate::ns;
use crate::util::text_node_codecs::{Codec, WhitespaceAwareBase64};
-use crate::{ns, Error};
use minidom::Element;
generate_element!(
@@ -35,7 +35,7 @@ generate_element!(
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
use std::str::FromStr;
#[test]
@@ -42,7 +42,7 @@ impl IqResultPayload for VersionResult {}
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]
@@ -80,7 +80,7 @@ impl Open {
#[cfg(test)]
mod tests {
use super::*;
- use crate::Element;
+ use minidom::Element;
#[cfg(target_pointer_width = "32")]
#[test]