Add tests for crate exports ; add structure to imports/exports

This commit is contained in:
xmppftw xmppftw 2024-12-18 17:59:06 +01:00 committed by Link Mauve
commit 7991cef904
7 changed files with 77 additions and 32 deletions

View file

@ -26,7 +26,6 @@ pin-project-lite = { version = "0.2" }
# same repository dependencies
sasl = { version = "0.5", path = "../sasl" }
xmpp-parsers = { version = "0.21", path = "../parsers" }
minidom = { version = "0.16", path = "../minidom" }
xso = { version = "0.1", path = "../xso" }
# these are only needed for starttls ServerConnector support

View file

@ -1,8 +1,11 @@
use futures::{SinkExt, StreamExt};
use tokio::{self, io, net::TcpSocket};
use tokio_xmpp::parsers::stream_features::StreamFeatures;
use tokio_xmpp::xmlstream::{accept_stream, StreamHeader, Timeouts};
use tokio_xmpp::{
minidom::Element,
parsers::stream_features::StreamFeatures,
xmlstream::{accept_stream, StreamHeader, Timeouts},
};
#[tokio::main]
async fn main() -> Result<(), io::Error> {
@ -24,7 +27,7 @@ async fn main() -> Result<(), io::Error> {
.await?;
let stream = stream.send_header(StreamHeader::default()).await?;
let mut stream = stream
.send_features::<minidom::Element>(&StreamFeatures::default())
.send_features::<Element>(&StreamFeatures::default())
.await?;
tokio::spawn(async move {

View file

@ -9,10 +9,10 @@ use std::io::Error as IoError;
use std::net::AddrParseError;
use std::str::Utf8Error;
use xmpp_parsers::sasl::DefinedCondition as SaslDefinedCondition;
use xmpp_parsers::{jid::Error as JidParseError, Error as ParsersError};
use crate::connect::ServerConnectorError;
use crate::{
connect::ServerConnectorError, jid, minidom,
parsers::sasl::DefinedCondition as SaslDefinedCondition,
};
/// Top-level error type
#[derive(Debug)]
@ -20,7 +20,7 @@ pub enum Error {
/// I/O error
Io(IoError),
/// Error parsing Jabber-Id
JidParse(JidParseError),
JidParse(jid::Error),
/// Protocol-level error
Protocol(ProtocolError),
/// Authentication error
@ -86,8 +86,8 @@ impl<T: ServerConnectorError + 'static> From<T> for Error {
}
}
impl From<JidParseError> for Error {
fn from(e: JidParseError) -> Self {
impl From<jid::Error> for Error {
fn from(e: jid::Error) -> Self {
Error::JidParse(e)
}
}
@ -149,7 +149,7 @@ pub enum ProtocolError {
/// XML parser error
Parser(minidom::Error),
/// Error with expected stanza schema
Parsers(ParsersError),
Parsers(xso::error::Error),
/// No TLS available
NoTls,
/// Invalid response to resource binding
@ -197,8 +197,8 @@ impl From<minidom::Error> for Error {
}
}
impl From<ParsersError> for ProtocolError {
fn from(e: ParsersError) -> Self {
impl From<xso::error::Error> for ProtocolError {
fn from(e: xso::error::Error) -> Self {
ProtocolError::Parsers(e)
}
}

View file

@ -46,28 +46,36 @@ compile_error!(
"when starttls feature enabled one of tls-native and tls-rust features must be enabled."
);
mod event;
pub use event::{Event, Stanza};
pub mod connect;
pub mod stanzastream;
pub mod xmlstream;
pub use parsers::{jid, minidom};
pub use xmpp_parsers as parsers;
mod client;
pub use client::Client;
#[cfg(feature = "insecure-tcp")]
mod component;
#[cfg(feature = "insecure-tcp")]
pub use crate::component::Component;
pub mod connect;
/// Detailed error types
pub mod error;
mod event;
pub mod stanzastream;
pub mod xmlstream;
#[doc(inline)]
/// Generic tokio_xmpp Error
pub use crate::error::Error;
pub use client::Client;
#[cfg(feature = "insecure-tcp")]
pub use component::Component;
pub use event::{Event, Stanza};
// Re-exports
pub use minidom;
pub use xmpp_parsers as parsers;
pub use xmpp_parsers::jid;
#[cfg(test)]
mod tests {
#[test]
fn reexports() {
#[allow(unused_imports)]
use crate::jid;
#[allow(unused_imports)]
use crate::minidom;
#[allow(unused_imports)]
use crate::parsers;
}
}