xmpp-parsers: Stop reexporting extra symbols

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.
This commit is contained in:
Emmanuel Gil Peyrot 2024-07-24 20:28:22 +02:00 committed by Jonas Schäfer
commit 7b66de1166
79 changed files with 123 additions and 118 deletions

View file

@ -11,7 +11,8 @@ use xmpp_parsers::{
disco::DiscoInfoResult, disco::DiscoInfoResult,
ecaps2::{compute_disco as compute_disco_ecaps2, hash_ecaps2, ECaps2}, ecaps2::{compute_disco as compute_disco_ecaps2, hash_ecaps2, ECaps2},
hashes::Algo, hashes::Algo,
Element, Error, minidom::Element,
Error,
}; };
fn get_caps(disco: &DiscoInfoResult, node: String) -> Result<Caps, String> { fn get_caps(disco: &DiscoInfoResult, node: String) -> Result<Caps, String> {

View file

@ -18,7 +18,7 @@ impl MessagePayload for Attention {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(not(feature = "disable-validation"))] #[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -66,7 +66,7 @@ impl PubSubPayload for Data {}
mod tests { mod tests {
use super::*; use super::*;
use crate::hashes::Algo; use crate::hashes::Algo;
use crate::Element; use minidom::Element;
#[cfg(not(feature = "disable-validation"))] #[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -6,8 +6,8 @@
use crate::iq::{IqResultPayload, IqSetPayload}; use crate::iq::{IqResultPayload, IqSetPayload};
use crate::ns; use crate::ns;
use crate::Element;
use jid::{FullJid, Jid}; use jid::{FullJid, Jid};
use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -6,7 +6,7 @@
use crate::mam; use crate::mam;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
/// Represents the `<bind/>` element, as sent by the server in SASL2 to advertise which features /// Represents the `<bind/>` element, as sent by the server in SASL2 to advertise which features
@ -180,7 +180,6 @@ impl From<Bound> for Element {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -8,8 +8,8 @@ use xso::{AsXml, FromXml};
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload}; use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns; use crate::ns;
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use xso::error::FromElementError; use xso::error::FromElementError;
/// The element requesting the blocklist, the result iq will contain a /// The element requesting the blocklist, the result iq will contain a

View file

@ -114,7 +114,7 @@ pub struct Data {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::FromElementError; use xso::error::FromElementError;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -98,7 +98,7 @@ impl Storage {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -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. //! 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::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
generate_attribute!( generate_attribute!(

View file

@ -9,10 +9,10 @@ use crate::disco::{DiscoInfoQuery, DiscoInfoResult, Feature, Identity};
use crate::hashes::{Algo, Hash}; use crate::hashes::{Algo, Hash};
use crate::ns; use crate::ns;
use crate::presence::PresencePayload; use crate::presence::PresencePayload;
use crate::Element;
use base64::{engine::general_purpose::STANDARD as Base64, Engine}; use base64::{engine::general_purpose::STANDARD as Base64, Engine};
use blake2::Blake2bVar; use blake2::Blake2bVar;
use digest::{Digest, Update, VariableOutput}; use digest::{Digest, Update, VariableOutput};
use minidom::Element;
use sha1::Sha1; use sha1::Sha1;
use sha2::{Sha256, Sha512}; use sha2::{Sha256, Sha512};
use sha3::{Sha3_256, Sha3_512}; use sha3::{Sha3_256, Sha3_512};

View file

@ -60,7 +60,7 @@ impl MessagePayload for Sent {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -120,7 +120,7 @@ impl IqSetPayload for Revoke {}
mod tests { mod tests {
use super::*; use super::*;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -33,7 +33,7 @@ impl MessagePayload for ChatState {}
mod tests { mod tests {
use super::*; use super::*;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[test] #[test]

View file

@ -43,7 +43,7 @@ impl Handshake {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -27,7 +27,7 @@ pub struct Active;
mod tests { mod tests {
use super::*; use super::*;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
#[test] #[test]
fn test_size() { fn test_size() {

View file

@ -7,7 +7,7 @@
use crate::data_forms_validate::Validate; use crate::data_forms_validate::Validate;
use crate::media_element::MediaElement; use crate::media_element::MediaElement;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
generate_element!( generate_element!(

View file

@ -8,10 +8,12 @@ use std::fmt::{Display, Formatter};
use std::str::FromStr; use std::str::FromStr;
use minidom::{Element, IntoAttributeValue}; 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::ns::{self, XDATA_VALIDATE};
use crate::Error;
/// Validation Method /// Validation Method
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq)]

View file

@ -35,8 +35,8 @@ impl PresencePayload for Delay {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element;
use jid::BareJid; use jid::BareJid;
use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -13,8 +13,8 @@ use crate::data_forms::{DataForm, DataFormType};
use crate::iq::{IqGetPayload, IqResultPayload}; use crate::iq::{IqGetPayload, IqResultPayload};
use crate::ns; use crate::ns;
use crate::rsm::{SetQuery, SetResult}; use crate::rsm::{SetQuery, SetResult};
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
/// Structure representing a `<query xmlns='http://jabber.org/protocol/disco#info'/>` element. /// Structure representing a `<query xmlns='http://jabber.org/protocol/disco#info'/>` element.
/// ///

View file

@ -186,7 +186,7 @@ pub fn query_ecaps2(hash: Hash) -> DiscoInfoQuery {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::FromElementError; use xso::error::FromElementError;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -28,7 +28,7 @@ impl MessagePayload for ExplicitMessageEncryption {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -143,7 +143,7 @@ impl IqResultPayload for Credentials {}
mod tests { mod tests {
use super::*; use super::*;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -77,7 +77,7 @@ pub struct Token {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
#[test] #[test]

View file

@ -26,7 +26,7 @@ generate_element!(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -244,7 +244,7 @@ impl Deref for Sha1HexAttribute {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::FromElementError; use xso::error::FromElementError;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -11,7 +11,7 @@ use xso::{
use crate::iq::{IqGetPayload, IqResultPayload}; use crate::iq::{IqGetPayload, IqResultPayload};
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
/// Requesting a slot /// Requesting a slot
#[derive(FromXml, AsXml, Debug, Clone, PartialEq)] #[derive(FromXml, AsXml, Debug, Clone, PartialEq)]

View file

@ -76,7 +76,7 @@ impl IqSetPayload for Close {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -7,7 +7,7 @@
use crate::data_forms::DataForm; use crate::data_forms::DataForm;
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload}; use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use std::collections::HashMap; use std::collections::HashMap;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -24,7 +24,7 @@ impl PresencePayload for Idle {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -7,8 +7,8 @@
use crate::ns; use crate::ns;
use crate::stanza_error::StanzaError; use crate::stanza_error::StanzaError;
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use minidom::IntoAttributeValue; use minidom::IntoAttributeValue;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -43,8 +43,8 @@ impl IqResultPayload for JidPrepResponse {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element;
use jid::FullJid; use jid::FullJid;
use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -11,8 +11,8 @@ use crate::jingle_ice_udp::Transport as IceUdpTransport;
use crate::jingle_rtp::Description as RtpDescription; use crate::jingle_rtp::Description as RtpDescription;
use crate::jingle_s5b::Transport as Socks5Transport; use crate::jingle_s5b::Transport as Socks5Transport;
use crate::ns; use crate::ns;
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use std::collections::BTreeMap; use std::collections::BTreeMap;
use std::fmt; use std::fmt;
use std::str::FromStr; use std::str::FromStr;

View file

@ -72,7 +72,7 @@ impl Fingerprint {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -54,7 +54,7 @@ generate_element!(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -24,7 +24,7 @@ attributes: [
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -128,7 +128,7 @@ mod tests {
use super::*; use super::*;
use crate::hashes::Algo; use crate::hashes::Algo;
use crate::jingle_dtls_srtp::Setup; use crate::jingle_dtls_srtp::Setup;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -6,7 +6,7 @@
use crate::jingle::SessionId; use crate::jingle::SessionId;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
/// Defines a protocol for broadcasting Jingle requests to all of the clients /// Defines a protocol for broadcasting Jingle requests to all of the clients

View file

@ -68,7 +68,7 @@ pub struct Candidate {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -24,7 +24,7 @@ pub struct RtcpFb {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -154,7 +154,7 @@ pub struct Parameter {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -55,7 +55,7 @@ impl RtpHdrext {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -5,8 +5,8 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
use crate::ns; use crate::ns;
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use std::net::IpAddr; use std::net::IpAddr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -83,7 +83,7 @@ generate_element!(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -184,7 +184,7 @@ impl MessagePayload for Encrypted {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[test] #[test]
fn parse_bundle() { fn parse_bundle() {

View file

@ -23,16 +23,18 @@
#![warn(missing_docs)] #![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 blake2;
pub use jid;
pub use minidom;
pub use sha1; pub use sha1;
pub use sha2; pub use sha2;
pub use sha3; 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. /// XML namespace definitions used through XMPP.
pub mod ns; pub mod ns;

View file

@ -17,7 +17,7 @@ use crate::message::MessagePayload;
use crate::ns; use crate::ns;
use crate::pubsub::NodeName; use crate::pubsub::NodeName;
use crate::rsm::{SetQuery, SetResult}; use crate::rsm::{SetQuery, SetResult};
use crate::Element; use minidom::Element;
use minidom::Node; use minidom::Node;
generate_id!( generate_id!(

View file

@ -46,7 +46,7 @@ generate_element!(
mod tests { mod tests {
use super::*; use super::*;
use crate::data_forms::DataForm; use crate::data_forms::DataForm;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -5,8 +5,8 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
use crate::ns; use crate::ns;
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use std::collections::BTreeMap; use std::collections::BTreeMap;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -24,7 +24,7 @@ impl MessagePayload for Replace {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -254,7 +254,7 @@ impl Destroy {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[test] #[test]
fn participant() { fn participant() {

View file

@ -271,7 +271,7 @@ generate_elem_id!(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -99,7 +99,7 @@ impl Muc {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -13,7 +13,7 @@ use xso::{
use crate::message::MessagePayload; use crate::message::MessagePayload;
use crate::ns; use crate::ns;
use crate::presence::PresencePayload; use crate::presence::PresencePayload;
use crate::Element; use minidom::Element;
use jid::FullJid; use jid::FullJid;
@ -310,7 +310,7 @@ mod tests {
use super::*; use super::*;
use crate::message::Message; use crate::message::Message;
use crate::presence::{Presence, Type as PresenceType}; use crate::presence::{Presence, Type as PresenceType};
use crate::Jid; use jid::Jid;
#[test] #[test]
fn test_simple() { fn test_simple() {

View file

@ -14,7 +14,7 @@ generate_elem_id!(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(not(feature = "disable-validation"))] #[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -28,7 +28,7 @@ impl PresencePayload for OccupantId {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -23,7 +23,7 @@ impl MessagePayload for Oob {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -67,7 +67,7 @@ mod tests {
pubsub::{Item as PubSubItem, Publish}, pubsub::{Item as PubSubItem, Publish},
Item, NodeName, Item, NodeName,
}; };
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
#[test] #[test]

View file

@ -21,7 +21,7 @@ impl IqGetPayload for Ping {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(not(feature = "disable-validation"))] #[cfg(not(feature = "disable-validation"))]
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -9,8 +9,8 @@ use crate::date::DateTime;
use crate::message::MessagePayload; use crate::message::MessagePayload;
use crate::ns; use crate::ns;
use crate::pubsub::{Item as PubSubItem, ItemId, NodeName, Subscription, SubscriptionId}; use crate::pubsub::{Item as PubSubItem, ItemId, NodeName, Subscription, SubscriptionId};
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
/// Event wrapper for a PubSub `<item/>`. /// Event wrapper for a PubSub `<item/>`.

View file

@ -18,7 +18,8 @@ pub use self::event::PubSubEvent;
pub use self::owner::PubSubOwner; pub use self::owner::PubSubOwner;
pub use self::pubsub::PubSub; pub use self::pubsub::PubSub;
use crate::{Element, Jid}; use jid::Jid;
use minidom::Element;
generate_id!( generate_id!(
/// The name of a PubSub node, used to identify it on a JID. /// 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. /// 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> {}

View file

@ -11,8 +11,8 @@ use crate::data_forms::DataForm;
use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload}; use crate::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns; use crate::ns;
use crate::pubsub::{AffiliationAttribute, NodeName, Subscription}; use crate::pubsub::{AffiliationAttribute, NodeName, Subscription};
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
generate_element!( generate_element!(

View file

@ -15,8 +15,8 @@ use crate::ns;
use crate::pubsub::{ use crate::pubsub::{
AffiliationAttribute, Item as PubSubItem, NodeName, Subscription, SubscriptionId, AffiliationAttribute, Item as PubSubItem, NodeName, Subscription, SubscriptionId,
}; };
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
// TODO: a better solution would be to split this into a query and a result elements, like for // TODO: a better solution would be to split this into a query and a result elements, like for
// XEP-0030. // XEP-0030.

View file

@ -36,7 +36,7 @@ pub struct Reaction {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -33,7 +33,7 @@ impl MessagePayload for Received {}
mod tests { mod tests {
use super::*; use super::*;
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -91,7 +91,7 @@ impl IqResultPayload for Roster {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -5,7 +5,7 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
/// Requests paging through a potentially big set of items (represented by an /// Requests paging through a potentially big set of items (represented by an

View file

@ -7,7 +7,7 @@
use xso::{text::EmptyAsNone, AsXml, FromXml}; use xso::{text::EmptyAsNone, AsXml, FromXml};
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
generate_attribute!( generate_attribute!(

View file

@ -11,7 +11,7 @@ use xso::{
}; };
use crate::ns; use crate::ns;
use crate::Element; use minidom::Element;
use std::collections::BTreeMap; use std::collections::BTreeMap;
generate_attribute!( generate_attribute!(

View file

@ -146,7 +146,7 @@ pub struct StreamManagement;
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -7,8 +7,8 @@
use crate::message::MessagePayload; use crate::message::MessagePayload;
use crate::ns; use crate::ns;
use crate::presence::PresencePayload; use crate::presence::PresencePayload;
use crate::Element;
use jid::Jid; use jid::Jid;
use minidom::Element;
use minidom::Node; use minidom::Node;
use std::collections::BTreeMap; use std::collections::BTreeMap;
use std::convert::TryFrom; use std::convert::TryFrom;

View file

@ -41,8 +41,8 @@ impl MessagePayload for OriginId {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element;
use jid::BareJid; use jid::BareJid;
use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]

View file

@ -81,7 +81,7 @@ impl Stream {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -9,8 +9,8 @@ use xso::{AsXml, FromXml};
use crate::date::DateTime; use crate::date::DateTime;
use crate::iq::{IqGetPayload, IqResultPayload}; use crate::iq::{IqGetPayload, IqResultPayload};
use crate::ns; use crate::ns;
use crate::Element;
use chrono::FixedOffset; use chrono::FixedOffset;
use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};

View file

@ -6,7 +6,7 @@
use crate::ns; use crate::ns;
use crate::pubsub::PubSubPayload; use crate::pubsub::PubSubPayload;
use crate::Element; use minidom::Element;
use xso::error::{Error, FromElementError}; use xso::error::{Error, FromElementError};
generate_elem_id!( generate_elem_id!(

View file

@ -288,9 +288,9 @@ macro_rules! generate_element_enum {
$enum $enum
),+ ),+
} }
impl ::std::convert::TryFrom<crate::Element> for $elem { impl ::std::convert::TryFrom<minidom::Element> for $elem {
type Error = xso::error::FromElementError; 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_ns_only!(elem, $name, $ns);
check_no_children!(elem, $name); check_no_children!(elem, $name);
check_no_attributes!(elem, $name); check_no_attributes!(elem, $name);
@ -300,9 +300,9 @@ macro_rules! generate_element_enum {
}) })
} }
} }
impl From<$elem> for crate::Element { impl From<$elem> for minidom::Element {
fn from(elem: $elem) -> crate::Element { fn from(elem: $elem) -> minidom::Element {
crate::Element::builder( minidom::Element::builder(
match elem { match elem {
$($elem::$enum => $enum_name,)+ $($elem::$enum => $enum_name,)+
}, },
@ -324,9 +324,9 @@ macro_rules! generate_attribute_enum {
$enum $enum
),+ ),+
} }
impl ::std::convert::TryFrom<crate::Element> for $elem { impl ::std::convert::TryFrom<minidom::Element> for $elem {
type Error = xso::error::FromElementError; 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_ns_only!(elem, $name, $ns);
check_no_children!(elem, $name); check_no_children!(elem, $name);
check_no_unknown_attributes!(elem, $name, [$attr]); check_no_unknown_attributes!(elem, $name, [$attr]);
@ -336,9 +336,9 @@ macro_rules! generate_attribute_enum {
}) })
} }
} }
impl From<$elem> for crate::Element { impl From<$elem> for minidom::Element {
fn from(elem: $elem) -> crate::Element { fn from(elem: $elem) -> minidom::Element {
crate::Element::builder($name, crate::ns::$ns) minidom::Element::builder($name, crate::ns::$ns)
.attr($attr, match elem { .attr($attr, match elem {
$($elem::$enum => $enum_name,)+ $($elem::$enum => $enum_name,)+
}) })
@ -467,9 +467,9 @@ macro_rules! generate_elem_id {
$(#[$meta])* $(#[$meta])*
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct $elem(pub $type); 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; 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_self!(elem, $name, $ns);
check_no_children!(elem, $name); check_no_children!(elem, $name);
check_no_attributes!(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)?)) Ok($elem(elem.text().parse().map_err(xso::error::Error::text_parse_error)?))
} }
} }
impl From<$elem> for crate::Element { impl From<$elem> for minidom::Element {
fn from(elem: $elem) -> crate::Element { fn from(elem: $elem) -> minidom::Element {
crate::Element::builder($name, crate::ns::$ns) minidom::Element::builder($name, crate::ns::$ns)
.append(elem.0.to_string()) .append(elem.0.to_string())
.build() .build()
} }
@ -637,27 +637,27 @@ macro_rules! finish_parse_elem {
macro_rules! generate_serialiser { macro_rules! generate_serialiser {
($builder:ident, $parent:ident, $elem:ident, Required, String, ($name:tt, $ns:ident)) => { ($builder:ident, $parent:ident, $elem:ident, Required, String, ($name:tt, $ns:ident)) => {
$builder.append( $builder.append(
crate::Element::builder($name, crate::ns::$ns) minidom::Element::builder($name, crate::ns::$ns)
.append(::minidom::Node::Text($parent.$elem)), .append(::minidom::Node::Text($parent.$elem)),
) )
}; };
($builder:ident, $parent:ident, $elem:ident, Option, String, ($name:tt, $ns:ident)) => { ($builder:ident, $parent:ident, $elem:ident, Option, String, ($name:tt, $ns:ident)) => {
$builder.append_all($parent.$elem.map(|elem| { $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:ident, $parent:ident, $elem:ident, Option, $constructor:ident, ($name:tt, *)) => {
$builder.append_all( $builder.append_all(
$parent $parent
.$elem .$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:ident, $parent:ident, $elem:ident, Option, $constructor:ident, ($name:tt, $ns:ident)) => {
$builder.append_all( $builder.append_all(
$parent $parent
.$elem .$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)) => { ($builder:ident, $parent:ident, $elem:ident, Vec, $constructor:ident, ($name:tt, $ns:ident)) => {
@ -667,11 +667,11 @@ macro_rules! generate_serialiser {
$builder.append_all( $builder.append_all(
$parent $parent
.$elem .$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: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, $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; 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_self!(elem, $name, $ns);
check_no_unknown_attributes!(elem, $name, [$($attr_name),*]); check_no_unknown_attributes!(elem, $name, [$($attr_name),*]);
$( $(
@ -790,9 +790,9 @@ macro_rules! generate_element {
} }
} }
impl From<$elem> for crate::Element { impl From<$elem> for minidom::Element {
fn from(elem: $elem) -> crate::Element { fn from(elem: $elem) -> minidom::Element {
let mut builder = crate::Element::builder($name, crate::ns::$ns); let mut builder = minidom::Element::builder($name, crate::ns::$ns);
$( $(
builder = builder.attr($attr_name, elem.$attr); 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. // TODO: move that to src/pubsub/mod.rs, once we figure out how to use macros from there.
macro_rules! impl_pubsub_item { macro_rules! impl_pubsub_item {
($item:ident, $ns:ident) => { ($item:ident, $ns:ident) => {
impl ::std::convert::TryFrom<crate::Element> for $item { impl ::std::convert::TryFrom<minidom::Element> for $item {
type Error = FromElementError; 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_self!(elem, "item", $ns);
check_no_unknown_attributes!(elem, "item", ["id", "publisher"]); check_no_unknown_attributes!(elem, "item", ["id", "publisher"]);
let mut payloads = elem.take_contents_as_children().collect::<Vec<_>>(); 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 { impl From<$item> for minidom::Element {
fn from(item: $item) -> crate::Element { fn from(item: $item) -> minidom::Element {
crate::Element::builder("item", ns::$ns) minidom::Element::builder("item", ns::$ns)
.attr("id", item.0.id) .attr("id", item.0.id)
.attr("publisher", item.0.publisher) .attr("publisher", item.0.publisher)
.append_all(item.0.payload) .append_all(item.0.payload)

View file

@ -13,11 +13,11 @@
//! For vCard updates defined in [XEP-0153](https://xmpp.org/extensions/xep-0153.html), //! For vCard updates defined in [XEP-0153](https://xmpp.org/extensions/xep-0153.html),
//! see [`vcard_update`][crate::vcard_update] module. //! 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::iq::{IqGetPayload, IqResultPayload, IqSetPayload};
use crate::ns;
use crate::util::text_node_codecs::{Codec, WhitespaceAwareBase64}; use crate::util::text_node_codecs::{Codec, WhitespaceAwareBase64};
use crate::{ns, Error};
use minidom::Element; use minidom::Element;
generate_element!( generate_element!(

View file

@ -35,7 +35,7 @@ generate_element!(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
use std::str::FromStr; use std::str::FromStr;
#[test] #[test]

View file

@ -42,7 +42,7 @@ impl IqResultPayload for VersionResult {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]

View file

@ -80,7 +80,7 @@ impl Open {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Element; use minidom::Element;
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
#[test] #[test]