From 1ce2f894aa59e21cc5b048ee9a168a947526e693 Mon Sep 17 00:00:00 2001 From: xmppftw Date: Thu, 19 Dec 2024 19:34:10 +0100 Subject: [PATCH] tokio_xmpp: Replace std stuff with alloc/core stuff --- tokio-xmpp/examples/keep_connection.rs | 4 ++-- tokio-xmpp/src/client/login.rs | 4 ++-- tokio-xmpp/src/client/stream.rs | 3 +-- tokio-xmpp/src/connect/dns.rs | 6 +++--- tokio-xmpp/src/connect/mod.rs | 4 ++-- tokio-xmpp/src/connect/starttls.rs | 7 +++---- tokio-xmpp/src/connect/tcp.rs | 2 +- tokio-xmpp/src/error.rs | 5 +---- tokio-xmpp/src/lib.rs | 2 ++ tokio-xmpp/src/xmlstream/common.rs | 12 +++++++----- tokio-xmpp/src/xmlstream/mod.rs | 4 ++-- tokio-xmpp/src/xmlstream/tests.rs | 2 +- 12 files changed, 27 insertions(+), 28 deletions(-) diff --git a/tokio-xmpp/examples/keep_connection.rs b/tokio-xmpp/examples/keep_connection.rs index a37fda19..bb64fc4d 100644 --- a/tokio-xmpp/examples/keep_connection.rs +++ b/tokio-xmpp/examples/keep_connection.rs @@ -10,10 +10,10 @@ //! as good as it can, transparently reconnecting on interruptions of the TCP //! stream. +use core::str::FromStr; +use core::time::Duration; use std::env::args; use std::process::exit; -use std::str::FromStr; -use std::time::Duration; use rand::{thread_rng, Rng}; diff --git a/tokio-xmpp/src/client/login.rs b/tokio-xmpp/src/client/login.rs index a1bc87ed..cf3a269c 100644 --- a/tokio-xmpp/src/client/login.rs +++ b/tokio-xmpp/src/client/login.rs @@ -1,12 +1,12 @@ +use alloc::borrow::Cow; +use core::str::FromStr; use futures::{SinkExt, StreamExt}; use sasl::client::mechanisms::{Anonymous, Plain, Scram}; use sasl::client::Mechanism; use sasl::common::scram::{Sha1, Sha256}; use sasl::common::Credentials; -use std::borrow::Cow; use std::collections::HashSet; use std::io; -use std::str::FromStr; use tokio::io::{AsyncBufRead, AsyncWrite}; use xmpp_parsers::{ jid::Jid, diff --git a/tokio-xmpp/src/client/stream.rs b/tokio-xmpp/src/client/stream.rs index 54ff8c55..c585276b 100644 --- a/tokio-xmpp/src/client/stream.rs +++ b/tokio-xmpp/src/client/stream.rs @@ -4,9 +4,8 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. +use core::{pin::Pin, task::Context}; use futures::{ready, task::Poll, Stream}; -use std::pin::Pin; -use std::task::Context; use crate::{ client::Client, diff --git a/tokio-xmpp/src/connect/dns.rs b/tokio-xmpp/src/connect/dns.rs index df896d66..dc6bf7a3 100644 --- a/tokio-xmpp/src/connect/dns.rs +++ b/tokio-xmpp/src/connect/dns.rs @@ -1,3 +1,4 @@ +use core::{fmt, net::SocketAddr}; #[cfg(feature = "dns")] use futures::{future::select_ok, FutureExt}; #[cfg(feature = "dns")] @@ -6,7 +7,6 @@ use hickory_resolver::{ }; #[cfg(feature = "dns")] use log::debug; -use std::net::SocketAddr; use tokio::net::TcpStream; use crate::Error; @@ -43,8 +43,8 @@ pub enum DnsConfig { }, } -impl std::fmt::Display for DnsConfig { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for DnsConfig { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { #[cfg(feature = "dns")] Self::UseSrv { host, .. } => write!(f, "{}", host), diff --git a/tokio-xmpp/src/connect/mod.rs b/tokio-xmpp/src/connect/mod.rs index 0fba5b0d..240d9153 100644 --- a/tokio-xmpp/src/connect/mod.rs +++ b/tokio-xmpp/src/connect/mod.rs @@ -25,7 +25,7 @@ pub trait AsyncReadAndWrite: AsyncBufRead + AsyncWrite + Unpin + Send {} impl AsyncReadAndWrite for T {} /// Trait that must be extended by the implementation of ServerConnector -pub trait ServerConnectorError: std::error::Error + Sync + Send {} +pub trait ServerConnectorError: core::error::Error + Sync + Send {} /// Trait called to connect to an XMPP server, perhaps called multiple times pub trait ServerConnector: Clone + core::fmt::Debug + Send + Unpin + 'static { @@ -37,7 +37,7 @@ pub trait ServerConnector: Clone + core::fmt::Debug + Send + Unpin + 'static { jid: &Jid, ns: &'static str, timeouts: Timeouts, - ) -> impl std::future::Future< + ) -> impl core::future::Future< Output = Result<(PendingFeaturesRecv, ChannelBinding), Error>, > + Send; } diff --git a/tokio-xmpp/src/connect/starttls.rs b/tokio-xmpp/src/connect/starttls.rs index 067c7e24..a1fae23b 100644 --- a/tokio-xmpp/src/connect/starttls.rs +++ b/tokio-xmpp/src/connect/starttls.rs @@ -1,10 +1,9 @@ //! `starttls::ServerConfig` provides a `ServerConnector` for starttls connections +use alloc::borrow::Cow; +use core::{error::Error as StdError, fmt}; #[cfg(feature = "tls-native")] use native_tls::Error as TlsError; -use std::borrow::Cow; -use std::error::Error as StdError; -use std::fmt; use std::io; use std::os::fd::AsRawFd; #[cfg(all(feature = "tls-rust", not(feature = "tls-native")))] @@ -16,7 +15,7 @@ use futures::{sink::SinkExt, stream::StreamExt}; #[cfg(all(feature = "tls-rust", not(feature = "tls-native")))] use { - std::sync::Arc, + alloc::sync::Arc, tokio_rustls::{ rustls::pki_types::ServerName, rustls::{ClientConfig, RootCertStore}, diff --git a/tokio-xmpp/src/connect/tcp.rs b/tokio-xmpp/src/connect/tcp.rs index af4722f6..d4c50075 100644 --- a/tokio-xmpp/src/connect/tcp.rs +++ b/tokio-xmpp/src/connect/tcp.rs @@ -1,6 +1,6 @@ //! `starttls::ServerConfig` provides a `ServerConnector` for starttls connections -use std::borrow::Cow; +use alloc::borrow::Cow; use tokio::{io::BufStream, net::TcpStream}; diff --git a/tokio-xmpp/src/error.rs b/tokio-xmpp/src/error.rs index 79d7b4cb..5fc7c571 100644 --- a/tokio-xmpp/src/error.rs +++ b/tokio-xmpp/src/error.rs @@ -1,13 +1,10 @@ +use core::{error::Error as StdError, fmt, net::AddrParseError, str::Utf8Error}; #[cfg(feature = "dns")] use hickory_resolver::{ error::ResolveError as DnsResolveError, proto::error::ProtoError as DnsProtoError, }; use sasl::client::MechanismError as SaslMechanismError; -use std::error::Error as StdError; -use std::fmt; use std::io::Error as IoError; -use std::net::AddrParseError; -use std::str::Utf8Error; use crate::{ connect::ServerConnectorError, jid, minidom, diff --git a/tokio-xmpp/src/lib.rs b/tokio-xmpp/src/lib.rs index 59d903dd..b957f260 100644 --- a/tokio-xmpp/src/lib.rs +++ b/tokio-xmpp/src/lib.rs @@ -46,6 +46,8 @@ compile_error!( "when starttls feature enabled one of tls-native and tls-rust features must be enabled." ); +extern crate alloc; + pub use parsers::{jid, minidom}; pub use xmpp_parsers as parsers; diff --git a/tokio-xmpp/src/xmlstream/common.rs b/tokio-xmpp/src/xmlstream/common.rs index ca82c419..0fe53b13 100644 --- a/tokio-xmpp/src/xmlstream/common.rs +++ b/tokio-xmpp/src/xmlstream/common.rs @@ -4,11 +4,13 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -use core::future::Future; -use core::pin::Pin; -use core::task::{Context, Poll}; -use core::time::Duration; -use std::borrow::Cow; +use alloc::borrow::Cow; +use core::{ + future::Future, + pin::Pin, + task::{Context, Poll}, + time::Duration, +}; use std::io; use futures::{ready, Sink, SinkExt, Stream, StreamExt}; diff --git a/tokio-xmpp/src/xmlstream/mod.rs b/tokio-xmpp/src/xmlstream/mod.rs index 27c51ea3..b24baf03 100644 --- a/tokio-xmpp/src/xmlstream/mod.rs +++ b/tokio-xmpp/src/xmlstream/mod.rs @@ -114,7 +114,7 @@ struct LogXsoBuf<'x>(&'x [u8]); impl<'x> fmt::Display for LogXsoBuf<'x> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { // We always generate UTF-8, so this should be good... I think. - let text = std::str::from_utf8(&self.0).unwrap(); + let text = core::str::from_utf8(&self.0).unwrap(); #[cfg(feature = "syntax-highlighting")] let text = highlight_xml(text); f.write_str(&text) @@ -195,7 +195,7 @@ impl fmt::Display for ReadError { } impl core::error::Error for ReadError { - fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { match self { ReadError::HardError(e) => Some(e), ReadError::ParseError(e) => Some(e), diff --git a/tokio-xmpp/src/xmlstream/tests.rs b/tokio-xmpp/src/xmlstream/tests.rs index b45ddd86..e81045f8 100644 --- a/tokio-xmpp/src/xmlstream/tests.rs +++ b/tokio-xmpp/src/xmlstream/tests.rs @@ -4,7 +4,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -use std::time::Duration; +use core::time::Duration; use futures::{SinkExt, StreamExt};