From 7b66de1166fdc466988891a43c3881b7047f3160 Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Wed, 24 Jul 2024 20:28:22 +0200 Subject: [PATCH] xmpp-parsers: Stop reexporting extra symbols MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Let’s continue reexporting jid and minidom, but not their inner pub items, users of this crate can go one level deeper if they need that. Only xso::error::Error is still useful to reexport, as this is part of the public API of all of our parsers. --- parsers/examples/generate-caps.rs | 3 +- parsers/src/attention.rs | 2 +- parsers/src/avatar.rs | 2 +- parsers/src/bind.rs | 2 +- parsers/src/bind2.rs | 3 +- parsers/src/blocking.rs | 2 +- parsers/src/bob.rs | 2 +- parsers/src/bookmarks.rs | 2 +- parsers/src/bookmarks2.rs | 2 +- parsers/src/caps.rs | 2 +- parsers/src/carbons.rs | 2 +- parsers/src/cert_management.rs | 2 +- parsers/src/chatstates.rs | 2 +- parsers/src/component.rs | 2 +- parsers/src/csi.rs | 2 +- parsers/src/data_forms.rs | 2 +- parsers/src/data_forms_validate.rs | 6 ++- parsers/src/delay.rs | 2 +- parsers/src/disco.rs | 2 +- parsers/src/ecaps2.rs | 2 +- parsers/src/eme.rs | 2 +- parsers/src/extdisco.rs | 2 +- parsers/src/fast.rs | 2 +- parsers/src/forwarding.rs | 2 +- parsers/src/hashes.rs | 2 +- parsers/src/http_upload.rs | 2 +- parsers/src/ibb.rs | 2 +- parsers/src/ibr.rs | 2 +- parsers/src/idle.rs | 2 +- parsers/src/iq.rs | 2 +- parsers/src/jid_prep.rs | 2 +- parsers/src/jingle.rs | 2 +- parsers/src/jingle_dtls_srtp.rs | 2 +- parsers/src/jingle_grouping.rs | 2 +- parsers/src/jingle_ibb.rs | 2 +- parsers/src/jingle_ice_udp.rs | 2 +- parsers/src/jingle_message.rs | 2 +- parsers/src/jingle_raw_udp.rs | 2 +- parsers/src/jingle_rtcp_fb.rs | 2 +- parsers/src/jingle_rtp.rs | 2 +- parsers/src/jingle_rtp_hdrext.rs | 2 +- parsers/src/jingle_s5b.rs | 2 +- parsers/src/jingle_ssma.rs | 2 +- parsers/src/legacy_omemo.rs | 2 +- parsers/src/lib.rs | 12 +++--- parsers/src/mam.rs | 2 +- parsers/src/media_element.rs | 2 +- parsers/src/message.rs | 2 +- parsers/src/message_correct.rs | 2 +- parsers/src/mix.rs | 2 +- parsers/src/mood.rs | 2 +- parsers/src/muc/muc.rs | 2 +- parsers/src/muc/user.rs | 4 +- parsers/src/nick.rs | 2 +- parsers/src/occupant_id.rs | 2 +- parsers/src/oob.rs | 2 +- parsers/src/openpgp.rs | 2 +- parsers/src/ping.rs | 2 +- parsers/src/pubsub/event.rs | 2 +- parsers/src/pubsub/mod.rs | 5 ++- parsers/src/pubsub/owner.rs | 2 +- parsers/src/pubsub/pubsub.rs | 2 +- parsers/src/reactions.rs | 2 +- parsers/src/receipts.rs | 2 +- parsers/src/roster.rs | 2 +- parsers/src/rsm.rs | 2 +- parsers/src/rtt.rs | 2 +- parsers/src/sasl.rs | 2 +- parsers/src/sm.rs | 2 +- parsers/src/stanza_error.rs | 2 +- parsers/src/stanza_id.rs | 2 +- parsers/src/stream.rs | 2 +- parsers/src/time.rs | 2 +- parsers/src/tune.rs | 2 +- parsers/src/util/macros.rs | 62 +++++++++++++++--------------- parsers/src/vcard.rs | 4 +- parsers/src/vcard_update.rs | 2 +- parsers/src/version.rs | 2 +- parsers/src/websocket.rs | 2 +- 79 files changed, 123 insertions(+), 118 deletions(-) diff --git a/parsers/examples/generate-caps.rs b/parsers/examples/generate-caps.rs index 9c06169d..8e649115 100644 --- a/parsers/examples/generate-caps.rs +++ b/parsers/examples/generate-caps.rs @@ -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 { diff --git a/parsers/src/attention.rs b/parsers/src/attention.rs index c94bd54c..00a32d14 100644 --- a/parsers/src/attention.rs +++ b/parsers/src/attention.rs @@ -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}; diff --git a/parsers/src/avatar.rs b/parsers/src/avatar.rs index b4af78a3..afc1278a 100644 --- a/parsers/src/avatar.rs +++ b/parsers/src/avatar.rs @@ -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}; diff --git a/parsers/src/bind.rs b/parsers/src/bind.rs index 5d4d0aae..8b44d0ae 100644 --- a/parsers/src/bind.rs +++ b/parsers/src/bind.rs @@ -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}; diff --git a/parsers/src/bind2.rs b/parsers/src/bind2.rs index be4bc9ca..fa72cd8a 100644 --- a/parsers/src/bind2.rs +++ b/parsers/src/bind2.rs @@ -6,7 +6,7 @@ use crate::mam; use crate::ns; -use crate::Element; +use minidom::Element; use xso::error::{Error, FromElementError}; /// Represents the `` element, as sent by the server in SASL 2 to advertise which features @@ -180,7 +180,6 @@ impl From for Element { #[cfg(test)] mod tests { use super::*; - use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/blocking.rs b/parsers/src/blocking.rs index 223426a7..e7b1297a 100644 --- a/parsers/src/blocking.rs +++ b/parsers/src/blocking.rs @@ -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 diff --git a/parsers/src/bob.rs b/parsers/src/bob.rs index b2221e2c..7988fd30 100644 --- a/parsers/src/bob.rs +++ b/parsers/src/bob.rs @@ -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")] diff --git a/parsers/src/bookmarks.rs b/parsers/src/bookmarks.rs index aa924442..7b4769b3 100644 --- a/parsers/src/bookmarks.rs +++ b/parsers/src/bookmarks.rs @@ -98,7 +98,7 @@ impl Storage { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/bookmarks2.rs b/parsers/src/bookmarks2.rs index 8026cf57..f55cecd8 100644 --- a/parsers/src/bookmarks2.rs +++ b/parsers/src/bookmarks2.rs @@ -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!( diff --git a/parsers/src/caps.rs b/parsers/src/caps.rs index 77f7b30d..d21dea82 100644 --- a/parsers/src/caps.rs +++ b/parsers/src/caps.rs @@ -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}; diff --git a/parsers/src/carbons.rs b/parsers/src/carbons.rs index 9fdcc88f..8baf5090 100644 --- a/parsers/src/carbons.rs +++ b/parsers/src/carbons.rs @@ -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] diff --git a/parsers/src/cert_management.rs b/parsers/src/cert_management.rs index 4e3fb87a..92f5bee8 100644 --- a/parsers/src/cert_management.rs +++ b/parsers/src/cert_management.rs @@ -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")] diff --git a/parsers/src/chatstates.rs b/parsers/src/chatstates.rs index 4f7ff7fc..86213178 100644 --- a/parsers/src/chatstates.rs +++ b/parsers/src/chatstates.rs @@ -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] diff --git a/parsers/src/component.rs b/parsers/src/component.rs index 6bee142c..45bb62b4 100644 --- a/parsers/src/component.rs +++ b/parsers/src/component.rs @@ -43,7 +43,7 @@ impl Handshake { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/csi.rs b/parsers/src/csi.rs index 56cb76af..93b59f19 100644 --- a/parsers/src/csi.rs +++ b/parsers/src/csi.rs @@ -27,7 +27,7 @@ pub struct Active; mod tests { use super::*; use crate::ns; - use crate::Element; + use minidom::Element; #[test] fn test_size() { diff --git a/parsers/src/data_forms.rs b/parsers/src/data_forms.rs index b7a839af..9bcd6669 100644 --- a/parsers/src/data_forms.rs +++ b/parsers/src/data_forms.rs @@ -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!( diff --git a/parsers/src/data_forms_validate.rs b/parsers/src/data_forms_validate.rs index f9aad49f..2fc18ce9 100644 --- a/parsers/src/data_forms_validate.rs +++ b/parsers/src/data_forms_validate.rs @@ -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)] diff --git a/parsers/src/delay.rs b/parsers/src/delay.rs index da946dec..717115c2 100644 --- a/parsers/src/delay.rs +++ b/parsers/src/delay.rs @@ -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}; diff --git a/parsers/src/disco.rs b/parsers/src/disco.rs index c9734208..f2eb5f61 100644 --- a/parsers/src/disco.rs +++ b/parsers/src/disco.rs @@ -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 `` element. /// diff --git a/parsers/src/ecaps2.rs b/parsers/src/ecaps2.rs index 49c29128..6472e0ff 100644 --- a/parsers/src/ecaps2.rs +++ b/parsers/src/ecaps2.rs @@ -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")] diff --git a/parsers/src/eme.rs b/parsers/src/eme.rs index e9c5319e..fafba2b4 100644 --- a/parsers/src/eme.rs +++ b/parsers/src/eme.rs @@ -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")] diff --git a/parsers/src/extdisco.rs b/parsers/src/extdisco.rs index 48532a49..89991517 100644 --- a/parsers/src/extdisco.rs +++ b/parsers/src/extdisco.rs @@ -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] diff --git a/parsers/src/fast.rs b/parsers/src/fast.rs index a96843f9..75b3b66b 100644 --- a/parsers/src/fast.rs +++ b/parsers/src/fast.rs @@ -77,7 +77,7 @@ pub struct Token { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; use std::str::FromStr; #[test] diff --git a/parsers/src/forwarding.rs b/parsers/src/forwarding.rs index 1b07caf6..5bc1eda9 100644 --- a/parsers/src/forwarding.rs +++ b/parsers/src/forwarding.rs @@ -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")] diff --git a/parsers/src/hashes.rs b/parsers/src/hashes.rs index d4ce6d8a..dbe3afe3 100644 --- a/parsers/src/hashes.rs +++ b/parsers/src/hashes.rs @@ -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")] diff --git a/parsers/src/http_upload.rs b/parsers/src/http_upload.rs index 4856e058..869df4a1 100644 --- a/parsers/src/http_upload.rs +++ b/parsers/src/http_upload.rs @@ -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)] diff --git a/parsers/src/ibb.rs b/parsers/src/ibb.rs index fe5f6dd6..ea74ec23 100644 --- a/parsers/src/ibb.rs +++ b/parsers/src/ibb.rs @@ -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")] diff --git a/parsers/src/ibr.rs b/parsers/src/ibr.rs index df73f7c0..2bd8916b 100644 --- a/parsers/src/ibr.rs +++ b/parsers/src/ibr.rs @@ -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}; diff --git a/parsers/src/idle.rs b/parsers/src/idle.rs index dfee8ec3..08b14ef8 100644 --- a/parsers/src/idle.rs +++ b/parsers/src/idle.rs @@ -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}; diff --git a/parsers/src/iq.rs b/parsers/src/iq.rs index cb53f38b..d2d4f272 100644 --- a/parsers/src/iq.rs +++ b/parsers/src/iq.rs @@ -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}; diff --git a/parsers/src/jid_prep.rs b/parsers/src/jid_prep.rs index 82e1d8bf..ef1a334f 100644 --- a/parsers/src/jid_prep.rs +++ b/parsers/src/jid_prep.rs @@ -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] diff --git a/parsers/src/jingle.rs b/parsers/src/jingle.rs index 1de9f2e5..944459f7 100644 --- a/parsers/src/jingle.rs +++ b/parsers/src/jingle.rs @@ -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; diff --git a/parsers/src/jingle_dtls_srtp.rs b/parsers/src/jingle_dtls_srtp.rs index 7d28af75..f1a763e7 100644 --- a/parsers/src/jingle_dtls_srtp.rs +++ b/parsers/src/jingle_dtls_srtp.rs @@ -72,7 +72,7 @@ impl Fingerprint { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/jingle_grouping.rs b/parsers/src/jingle_grouping.rs index a01d3f5f..ed67092f 100644 --- a/parsers/src/jingle_grouping.rs +++ b/parsers/src/jingle_grouping.rs @@ -54,7 +54,7 @@ generate_element!( #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/jingle_ibb.rs b/parsers/src/jingle_ibb.rs index c660ca28..ecc5a904 100644 --- a/parsers/src/jingle_ibb.rs +++ b/parsers/src/jingle_ibb.rs @@ -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")] diff --git a/parsers/src/jingle_ice_udp.rs b/parsers/src/jingle_ice_udp.rs index 32efac69..faf23e4d 100644 --- a/parsers/src/jingle_ice_udp.rs +++ b/parsers/src/jingle_ice_udp.rs @@ -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] diff --git a/parsers/src/jingle_message.rs b/parsers/src/jingle_message.rs index 49afa0a4..fb3c81e3 100644 --- a/parsers/src/jingle_message.rs +++ b/parsers/src/jingle_message.rs @@ -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 diff --git a/parsers/src/jingle_raw_udp.rs b/parsers/src/jingle_raw_udp.rs index 78e0bc04..152645d4 100644 --- a/parsers/src/jingle_raw_udp.rs +++ b/parsers/src/jingle_raw_udp.rs @@ -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] diff --git a/parsers/src/jingle_rtcp_fb.rs b/parsers/src/jingle_rtcp_fb.rs index 1ff9f822..e67c7c4b 100644 --- a/parsers/src/jingle_rtcp_fb.rs +++ b/parsers/src/jingle_rtcp_fb.rs @@ -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] diff --git a/parsers/src/jingle_rtp.rs b/parsers/src/jingle_rtp.rs index 0442a164..03eb3a97 100644 --- a/parsers/src/jingle_rtp.rs +++ b/parsers/src/jingle_rtp.rs @@ -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] diff --git a/parsers/src/jingle_rtp_hdrext.rs b/parsers/src/jingle_rtp_hdrext.rs index 2f8ba070..5a0ec107 100644 --- a/parsers/src/jingle_rtp_hdrext.rs +++ b/parsers/src/jingle_rtp_hdrext.rs @@ -55,7 +55,7 @@ impl RtpHdrext { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/jingle_s5b.rs b/parsers/src/jingle_s5b.rs index bf8187ea..0b8883a4 100644 --- a/parsers/src/jingle_s5b.rs +++ b/parsers/src/jingle_s5b.rs @@ -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}; diff --git a/parsers/src/jingle_ssma.rs b/parsers/src/jingle_ssma.rs index df43f550..2ea69188 100644 --- a/parsers/src/jingle_ssma.rs +++ b/parsers/src/jingle_ssma.rs @@ -83,7 +83,7 @@ generate_element!( #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/legacy_omemo.rs b/parsers/src/legacy_omemo.rs index 2fe46bf3..8e8d2f2d 100644 --- a/parsers/src/legacy_omemo.rs +++ b/parsers/src/legacy_omemo.rs @@ -184,7 +184,7 @@ impl MessagePayload for Encrypted {} #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[test] fn parse_bundle() { diff --git a/parsers/src/lib.rs b/parsers/src/lib.rs index 2c89a909..550592e3 100644 --- a/parsers/src/lib.rs +++ b/parsers/src/lib.rs @@ -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; diff --git a/parsers/src/mam.rs b/parsers/src/mam.rs index 403008bf..a4c04838 100644 --- a/parsers/src/mam.rs +++ b/parsers/src/mam.rs @@ -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!( diff --git a/parsers/src/media_element.rs b/parsers/src/media_element.rs index 50e88500..99dbc016 100644 --- a/parsers/src/media_element.rs +++ b/parsers/src/media_element.rs @@ -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")] diff --git a/parsers/src/message.rs b/parsers/src/message.rs index ac0ff3fb..30222a43 100644 --- a/parsers/src/message.rs +++ b/parsers/src/message.rs @@ -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}; diff --git a/parsers/src/message_correct.rs b/parsers/src/message_correct.rs index 1516053a..9b3c2c94 100644 --- a/parsers/src/message_correct.rs +++ b/parsers/src/message_correct.rs @@ -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")] diff --git a/parsers/src/mix.rs b/parsers/src/mix.rs index 87758a60..7835a5db 100644 --- a/parsers/src/mix.rs +++ b/parsers/src/mix.rs @@ -254,7 +254,7 @@ impl Destroy { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[test] fn participant() { diff --git a/parsers/src/mood.rs b/parsers/src/mood.rs index 27263e3a..9452072a 100644 --- a/parsers/src/mood.rs +++ b/parsers/src/mood.rs @@ -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] diff --git a/parsers/src/muc/muc.rs b/parsers/src/muc/muc.rs index 38fa8a00..ba5b2060 100644 --- a/parsers/src/muc/muc.rs +++ b/parsers/src/muc/muc.rs @@ -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}; diff --git a/parsers/src/muc/user.rs b/parsers/src/muc/user.rs index 1cc35335..aee3f377 100644 --- a/parsers/src/muc/user.rs +++ b/parsers/src/muc/user.rs @@ -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() { diff --git a/parsers/src/nick.rs b/parsers/src/nick.rs index c6c8a5df..9ccfd4e4 100644 --- a/parsers/src/nick.rs +++ b/parsers/src/nick.rs @@ -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}; diff --git a/parsers/src/occupant_id.rs b/parsers/src/occupant_id.rs index 95d9a844..a175f647 100644 --- a/parsers/src/occupant_id.rs +++ b/parsers/src/occupant_id.rs @@ -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")] diff --git a/parsers/src/oob.rs b/parsers/src/oob.rs index 9c0d0d22..dbcb490c 100644 --- a/parsers/src/oob.rs +++ b/parsers/src/oob.rs @@ -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")] diff --git a/parsers/src/openpgp.rs b/parsers/src/openpgp.rs index fecb97e8..355e8cfd 100644 --- a/parsers/src/openpgp.rs +++ b/parsers/src/openpgp.rs @@ -67,7 +67,7 @@ mod tests { pubsub::{Item as PubSubItem, Publish}, Item, NodeName, }; - use crate::Element; + use minidom::Element; use std::str::FromStr; #[test] diff --git a/parsers/src/ping.rs b/parsers/src/ping.rs index 2d505cc8..6b5e4c51 100644 --- a/parsers/src/ping.rs +++ b/parsers/src/ping.rs @@ -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}; diff --git a/parsers/src/pubsub/event.rs b/parsers/src/pubsub/event.rs index d1541501..1ab36794 100644 --- a/parsers/src/pubsub/event.rs +++ b/parsers/src/pubsub/event.rs @@ -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 ``. diff --git a/parsers/src/pubsub/mod.rs b/parsers/src/pubsub/mod.rs index fcbb5696..46d7f355 100644 --- a/parsers/src/pubsub/mod.rs +++ b/parsers/src/pubsub/mod.rs @@ -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 + Into {} +pub trait PubSubPayload: TryFrom + Into {} diff --git a/parsers/src/pubsub/owner.rs b/parsers/src/pubsub/owner.rs index 430bae81..e33027fd 100644 --- a/parsers/src/pubsub/owner.rs +++ b/parsers/src/pubsub/owner.rs @@ -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!( diff --git a/parsers/src/pubsub/pubsub.rs b/parsers/src/pubsub/pubsub.rs index b6cc74e6..db565c64 100644 --- a/parsers/src/pubsub/pubsub.rs +++ b/parsers/src/pubsub/pubsub.rs @@ -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. diff --git a/parsers/src/reactions.rs b/parsers/src/reactions.rs index 967b01f6..b79afdda 100644 --- a/parsers/src/reactions.rs +++ b/parsers/src/reactions.rs @@ -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] diff --git a/parsers/src/receipts.rs b/parsers/src/receipts.rs index 1e3fc225..eeb19e30 100644 --- a/parsers/src/receipts.rs +++ b/parsers/src/receipts.rs @@ -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")] diff --git a/parsers/src/roster.rs b/parsers/src/roster.rs index fe6e8b3b..7ce3ad56 100644 --- a/parsers/src/roster.rs +++ b/parsers/src/roster.rs @@ -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}; diff --git a/parsers/src/rsm.rs b/parsers/src/rsm.rs index 7ffc6f2d..69c885af 100644 --- a/parsers/src/rsm.rs +++ b/parsers/src/rsm.rs @@ -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 diff --git a/parsers/src/rtt.rs b/parsers/src/rtt.rs index a8032912..b8512d99 100644 --- a/parsers/src/rtt.rs +++ b/parsers/src/rtt.rs @@ -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!( diff --git a/parsers/src/sasl.rs b/parsers/src/sasl.rs index 59f20b5e..cd46fd34 100644 --- a/parsers/src/sasl.rs +++ b/parsers/src/sasl.rs @@ -11,7 +11,7 @@ use xso::{ }; use crate::ns; -use crate::Element; +use minidom::Element; use std::collections::BTreeMap; generate_attribute!( diff --git a/parsers/src/sm.rs b/parsers/src/sm.rs index c62bb66a..3142d5fc 100644 --- a/parsers/src/sm.rs +++ b/parsers/src/sm.rs @@ -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] diff --git a/parsers/src/stanza_error.rs b/parsers/src/stanza_error.rs index ab3b1c02..52e51a87 100644 --- a/parsers/src/stanza_error.rs +++ b/parsers/src/stanza_error.rs @@ -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; diff --git a/parsers/src/stanza_id.rs b/parsers/src/stanza_id.rs index f9f34622..04575d3d 100644 --- a/parsers/src/stanza_id.rs +++ b/parsers/src/stanza_id.rs @@ -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")] diff --git a/parsers/src/stream.rs b/parsers/src/stream.rs index 594ce4d6..0e8f9292 100644 --- a/parsers/src/stream.rs +++ b/parsers/src/stream.rs @@ -81,7 +81,7 @@ impl Stream { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test] diff --git a/parsers/src/time.rs b/parsers/src/time.rs index 86a31949..c01206fc 100644 --- a/parsers/src/time.rs +++ b/parsers/src/time.rs @@ -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}; diff --git a/parsers/src/tune.rs b/parsers/src/tune.rs index 5c91051e..90c87b41 100644 --- a/parsers/src/tune.rs +++ b/parsers/src/tune.rs @@ -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!( diff --git a/parsers/src/util/macros.rs b/parsers/src/util/macros.rs index 54503e27..5a084ba1 100644 --- a/parsers/src/util/macros.rs +++ b/parsers/src/util/macros.rs @@ -288,9 +288,9 @@ macro_rules! generate_element_enum { $enum ),+ } - impl ::std::convert::TryFrom for $elem { + impl ::std::convert::TryFrom 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 for $elem { + impl ::std::convert::TryFrom 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 for $elem { + impl ::std::convert::TryFrom 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 for $elem { + impl ::std::convert::TryFrom 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 for $item { + impl ::std::convert::TryFrom 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::>(); @@ -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) diff --git a/parsers/src/vcard.rs b/parsers/src/vcard.rs index 2a2ea6db..72d8640a 100644 --- a/parsers/src/vcard.rs +++ b/parsers/src/vcard.rs @@ -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!( diff --git a/parsers/src/vcard_update.rs b/parsers/src/vcard_update.rs index c4d942af..052ce9e1 100644 --- a/parsers/src/vcard_update.rs +++ b/parsers/src/vcard_update.rs @@ -35,7 +35,7 @@ generate_element!( #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; use std::str::FromStr; #[test] diff --git a/parsers/src/version.rs b/parsers/src/version.rs index cf51f5fc..3a903a88 100644 --- a/parsers/src/version.rs +++ b/parsers/src/version.rs @@ -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] diff --git a/parsers/src/websocket.rs b/parsers/src/websocket.rs index ebf829f7..6281da84 100644 --- a/parsers/src/websocket.rs +++ b/parsers/src/websocket.rs @@ -80,7 +80,7 @@ impl Open { #[cfg(test)] mod tests { use super::*; - use crate::Element; + use minidom::Element; #[cfg(target_pointer_width = "32")] #[test]