From e503f016a35b971d4e5ed22f1b4a80d0bd0eed7e Mon Sep 17 00:00:00 2001 From: pep Date: Thu, 13 Nov 2025 19:58:14 +0100 Subject: [PATCH] xmpp: update to edition 2024 Signed-off-by: pep --- xmpp/Cargo.toml | 2 +- xmpp/ChangeLog | 1 + xmpp/examples/hello_bot.rs | 6 ++++-- xmpp/src/agent.rs | 6 +++--- xmpp/src/builder.rs | 4 ++-- xmpp/src/delay.rs | 8 ++++---- xmpp/src/event.rs | 2 +- xmpp/src/event_loop.rs | 4 ++-- xmpp/src/iq/result.rs | 4 ++-- xmpp/src/message/receive/chat.rs | 6 ++++-- xmpp/src/message/receive/group_chat.rs | 2 +- xmpp/src/message/receive/mod.rs | 2 +- xmpp/src/muc/private_message.rs | 2 +- xmpp/src/muc/room.rs | 2 +- xmpp/src/presence/receive.rs | 10 ++++++++-- xmpp/src/presence/send.rs | 2 +- xmpp/src/pubsub/avatar.rs | 2 +- xmpp/src/pubsub/mod.rs | 2 +- xmpp/src/upload/receive.rs | 2 +- 19 files changed, 40 insertions(+), 29 deletions(-) diff --git a/xmpp/Cargo.toml b/xmpp/Cargo.toml index 406c27ffd6e0fd5385598c4c72c1b11e512820af..79ee241ad3c7e8dd2b11b0536e00020ff41d7cb0 100644 --- a/xmpp/Cargo.toml +++ b/xmpp/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://gitlab.com/xmpp-rs/xmpp-rs" keywords = ["xmpp", "jabber", "chat", "messaging", "bot"] categories = ["network-programming"] license = "MPL-2.0" -edition = "2021" +edition = "2024" [dependencies] chrono = "0.4" diff --git a/xmpp/ChangeLog b/xmpp/ChangeLog index a16939a3b67823df8e6395ccce4042ccf6dc3589..1450555fb5ba00f174682c9ead8bbcdbf0d160dd 100644 --- a/xmpp/ChangeLog +++ b/xmpp/ChangeLog @@ -42,6 +42,7 @@ XXXX-YY-ZZ [ RELEASER ] is meant to stay behind a feature. Also allows directly receiving stanzas. - Added documentation on `Event` enum. + - Update to edition 2024 * Fixes: - Use tokio::sync::RwLock not std::sync::RwLock (!432) - The default caps node has been shortened to https://xmpp.rs since we diff --git a/xmpp/examples/hello_bot.rs b/xmpp/examples/hello_bot.rs index 716cf404898e538654c8e0abc9079eec94d06bb9..ae35e6f64192a7d5f8b465e4df1860152211b030 100644 --- a/xmpp/examples/hello_bot.rs +++ b/xmpp/examples/hello_bot.rs @@ -7,9 +7,9 @@ #[cfg(feature = "rustls-any-backend")] use xmpp::tokio_xmpp::rustls; use xmpp::{ + Agent, ClientBuilder, ClientFeature, ClientType, Event, RoomNick, jid::BareJid, muc::room::{JoinRoomSettings, RoomMessageSettings}, - Agent, ClientBuilder, ClientFeature, ClientType, Event, RoomNick, }; use tokio::signal::ctrl_c; @@ -21,7 +21,9 @@ use std::str::FromStr; feature = "rustls-any-backend", not(any(feature = "aws_lc_rs", feature = "ring")) ))] -compile_error!("using rustls (e.g. via the ktls feature) needs an enabled rustls backend feature (either aws_lc_rs or ring)."); +compile_error!( + "using rustls (e.g. via the ktls feature) needs an enabled rustls backend feature (either aws_lc_rs or ring)." +); #[tokio::main] async fn main() -> Result<(), Option<()>> { diff --git a/xmpp/src/agent.rs b/xmpp/src/agent.rs index 1cf71eff18e839dadf2394aa56535c0a08fbc704..1d613d414c171529aecb3ab563e474ea80d47d8e 100644 --- a/xmpp/src/agent.rs +++ b/xmpp/src/agent.rs @@ -12,15 +12,15 @@ use tokio::io; use tokio::sync::RwLock; use crate::{ - event_loop, + Error, Event, RoomNick, event_loop, jid::{BareJid, Jid}, message, muc, parsers::disco::DiscoInfoResult, - upload, Error, Event, RoomNick, + upload, }; use tokio_xmpp::Client as TokioXmppClient; #[cfg(feature = "escape-hatch")] -use tokio_xmpp::{stanzastream::StanzaToken, Stanza}; +use tokio_xmpp::{Stanza, stanzastream::StanzaToken}; pub struct Agent { pub(crate) client: TokioXmppClient, diff --git a/xmpp/src/builder.rs b/xmpp/src/builder.rs index f8fdee3e0ce33723b0a423369f0e3abe57f1c461..a05483d42b2bf01d9223f945d29f387a0234713d 100644 --- a/xmpp/src/builder.rs +++ b/xmpp/src/builder.rs @@ -9,13 +9,13 @@ use crate::tokio_xmpp::connect::{DnsConfig, StartTlsServerConnector}; use core::str::FromStr; use crate::{ + Agent, ClientFeature, RoomNick, jid::{BareJid, Jid, ResourceRef}, parsers::{ disco::{DiscoInfoResult, Feature, Identity}, ns, }, - tokio_xmpp::{connect::ServerConnector, xmlstream::Timeouts, Client as TokioXmppClient}, - Agent, ClientFeature, RoomNick, + tokio_xmpp::{Client as TokioXmppClient, connect::ServerConnector, xmlstream::Timeouts}, }; #[derive(Debug)] diff --git a/xmpp/src/delay.rs b/xmpp/src/delay.rs index 24982fe12f825b16332b704a04fb0a5d9ae77fe3..f094c654e90c4f36a0fd4342f54231315437af9f 100644 --- a/xmpp/src/delay.rs +++ b/xmpp/src/delay.rs @@ -49,10 +49,10 @@ pub fn message_time_info(message: &Message) -> StanzaTimeInfo { match Delay::try_from(payload.clone()) { Ok(delay) => delays.push(delay), Err(e) => { - error!("Wrong format in payload from {}:{}\n{:?}\nUsing received time only.", - message.from.as_ref().unwrap().to_owned(), - e, - payload); + error!( + "Wrong format in payload from {}:{e}\n{payload:?}\nUsing received time only.", + message.from.as_ref().unwrap().to_owned() + ); } } } diff --git a/xmpp/src/event.rs b/xmpp/src/event.rs index 282aabc116e6dbccafa85fab5bb5a66b039e5548..dec422591012fbaa73125edb35080c57ac3ecef6 100644 --- a/xmpp/src/event.rs +++ b/xmpp/src/event.rs @@ -12,7 +12,7 @@ use tokio_xmpp::parsers::roster::Item as RosterItem; use tokio_xmpp::parsers::{iq::Iq, message::Message, presence::Presence}; use crate::parsers::confirm::Confirm; -use crate::{delay::StanzaTimeInfo, Error, MessageId, RoomNick}; +use crate::{Error, MessageId, RoomNick, delay::StanzaTimeInfo}; /// An Event notifying the client something has happened that may require attention. /// diff --git a/xmpp/src/event_loop.rs b/xmpp/src/event_loop.rs index 54f2fc362eb0f589052a865e42a7ffa624082f50..9476f887e8c895afa9fbba4dee9b7e45e48cffe4 100644 --- a/xmpp/src/event_loop.rs +++ b/xmpp/src/event_loop.rs @@ -6,11 +6,11 @@ use futures::StreamExt; use tokio_xmpp::{ - parsers::{disco::DiscoInfoQuery, iq::Iq, roster::Roster}, Event as TokioXmppEvent, Stanza, + parsers::{disco::DiscoInfoQuery, iq::Iq, roster::Roster}, }; -use crate::{iq, message, presence, Agent, Event}; +use crate::{Agent, Event, iq, message, presence}; /// Wait for new events, or Error::Disconnected when stream is closed and will not reconnect. pub async fn wait_for_events(agent: &mut Agent) -> Vec { diff --git a/xmpp/src/iq/result.rs b/xmpp/src/iq/result.rs index 78c41a4f49c097530d314c6c41395083066e1845..7c101e2a32f7fd0ae3da46e83112a8ae8eb33088 100644 --- a/xmpp/src/iq/result.rs +++ b/xmpp/src/iq/result.rs @@ -5,12 +5,12 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. use crate::{ - disco, + Agent, Event, RoomNick, disco, jid::Jid, minidom::Element, muc::room::JoinRoomSettings, parsers::{disco::DiscoInfoResult, ns, private::Query as PrivateXMLQuery, roster::Roster}, - pubsub, upload, Agent, Event, RoomNick, + pubsub, upload, }; pub async fn handle_iq_result( diff --git a/xmpp/src/message/receive/chat.rs b/xmpp/src/message/receive/chat.rs index 39c23212336363b736c35cbd6ebdaf07e6a06ce5..706d8614806bc3f81b878ae477b466ca1329ef9a 100644 --- a/xmpp/src/message/receive/chat.rs +++ b/xmpp/src/message/receive/chat.rs @@ -9,7 +9,7 @@ use tokio_xmpp::{ parsers::{confirm::Confirm, message::Message, message_correct::Replace, muc::user::MucUser}, }; -use crate::{delay::StanzaTimeInfo, Agent, Event, RoomNick}; +use crate::{Agent, Event, RoomNick, delay::StanzaTimeInfo}; pub async fn handle_message_chat( agent: &mut Agent, @@ -43,7 +43,9 @@ pub async fn handle_message_chat( if is_muc_pm { if from.resource().is_none() { - warn!("Received malformed MessageType::Chat in muc#user namespace from a bare JID:\n{:#?}", message); + warn!( + "Received malformed MessageType::Chat in muc#user namespace from a bare JID:\n{message:#?}" + ); } else { let full_from = from.clone().try_into_full().unwrap(); diff --git a/xmpp/src/message/receive/group_chat.rs b/xmpp/src/message/receive/group_chat.rs index da1713057fccf9625598df23cf356e3c0174e209..5e5722b028b44b973aa248ae1037afb778ac706a 100644 --- a/xmpp/src/message/receive/group_chat.rs +++ b/xmpp/src/message/receive/group_chat.rs @@ -5,10 +5,10 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. use crate::{ + Agent, Event, RoomNick, delay::StanzaTimeInfo, jid::Jid, parsers::{message::Message, message_correct::Replace}, - Agent, Event, RoomNick, }; pub async fn handle_message_group_chat( diff --git a/xmpp/src/message/receive/mod.rs b/xmpp/src/message/receive/mod.rs index 815f290069b4e61cac2cf1eac53943181eb071a0..d5e6b18347b4516ae7d1501b8d31d97d688c0082 100644 --- a/xmpp/src/message/receive/mod.rs +++ b/xmpp/src/message/receive/mod.rs @@ -9,7 +9,7 @@ use tokio_xmpp::parsers::{ ns, }; -use crate::{delay::message_time_info, pubsub, Agent, Event}; +use crate::{Agent, Event, delay::message_time_info, pubsub}; pub mod chat; pub mod group_chat; diff --git a/xmpp/src/muc/private_message.rs b/xmpp/src/muc/private_message.rs index 13929f421208c67446a32a21a77ae2ba36ec5b90..4be270a300bd3f4db79ce2ab71c22f4dbe9e7b4f 100644 --- a/xmpp/src/muc/private_message.rs +++ b/xmpp/src/muc/private_message.rs @@ -5,10 +5,10 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. use crate::{ + Agent, RoomNick, jid::{BareJid, Jid}, message::send::RawMessageSettings, parsers::{message::MessageType, muc::user::MucUser}, - Agent, RoomNick, }; #[derive(Clone, Debug)] diff --git a/xmpp/src/muc/room.rs b/xmpp/src/muc/room.rs index 2d50b24a7aa5662113ca7c898c8d7262ddbab7e8..bf73ac8316c1924fc9473ce28a3b46eb514542b2 100644 --- a/xmpp/src/muc/room.rs +++ b/xmpp/src/muc/room.rs @@ -5,6 +5,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. use crate::{ + Agent, RoomNick, jid::{BareJid, ResourceRef}, message::send::RawMessageSettings, parsers::{ @@ -12,7 +13,6 @@ use crate::{ muc::Muc, presence::{Presence, Type as PresenceType}, }, - Agent, RoomNick, }; #[derive(Clone, Debug)] diff --git a/xmpp/src/presence/receive.rs b/xmpp/src/presence/receive.rs index 3fcf071a4cd251567e64a7834ac1196731b4e745..5b182f0425d3862beaf9002db036ae418849d745 100644 --- a/xmpp/src/presence/receive.rs +++ b/xmpp/src/presence/receive.rs @@ -38,7 +38,10 @@ pub async fn handle_presence(agent: &mut Agent, presence: Presence) -> Vec Vec