From 43c19a61044ffeeda497c54c940ee6f34c49d1a9 Mon Sep 17 00:00:00 2001 From: andiveli Date: Wed, 26 Aug 2026 14:45:16 -0500 Subject: [PATCH] refactor(whatsrust): relocate forwarding result types --- whatsrust/src/lib.rs | 33 +++------------------------------ whatsrust/src/message_send.rs | 30 +++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/whatsrust/src/lib.rs b/whatsrust/src/lib.rs index 328cd6f..7b73682 100644 --- a/whatsrust/src/lib.rs +++ b/whatsrust/src/lib.rs @@ -22,7 +22,9 @@ pub use callbacks::CallbackTranslator; pub use events::set_event_handler; pub use lifecycle::{connect, disconnect, logout, new_client, pair_phone}; pub use media::{download_file, get_community_profile_picture, get_profile_picture}; -pub use message_send::{TextSendResult, forward_message, send_message, send_text_message}; +pub use message_send::{ + ForwardFailure, ForwardReport, TextSendResult, forward_message, send_message, send_text_message, +}; pub(crate) use models::file_kind_discriminant; pub use models::{ ChatSettings, CommunitiesError, CommunityInfo, Contact, DownloadFailed, Event, FileContent, @@ -40,7 +42,6 @@ pub use read_sync::{MarkAsReadError, mark_as_read, sync_chat_read}; pub use registrations::{ set_log_handler, set_message_handler, set_optimistic_text_sent_handler, set_presence_handler, }; -use strum::FromRepr; #[cfg(test)] mod file_kind_tests { @@ -273,34 +274,6 @@ pub use caches::{ pub const VIEW_ONCE_UNAVAILABLE_DESCRIPTION: &str = "View-once media is unavailable here. View it on your phone."; -#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] -pub struct ForwardReport { - pub succeeded: usize, - pub failed: usize, - pub failure: ForwardFailure, -} - -#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, FromRepr)] -#[repr(u8)] -pub enum ForwardFailure { - #[default] - None = 0, - SourceUnavailable = 1, - InvalidSource = 2, - InvalidDestination = 3, - SendFailed = 4, -} - -impl ForwardReport { - pub fn with_reason(succeeded: usize, failed: usize, failure: ForwardFailure) -> Self { - Self { - succeeded, - failed, - failure, - } - } -} - impl CallbackTranslator for JID { unsafe fn to_rust(from: CJID) -> Self { (&from).into() diff --git a/whatsrust/src/message_send.rs b/whatsrust/src/message_send.rs index f8a8cfe..32244ca 100644 --- a/whatsrust/src/message_send.rs +++ b/whatsrust/src/message_send.rs @@ -1,7 +1,6 @@ use std::ffi::{CString, c_char, c_void}; use crate::{ - ForwardFailure, ForwardReport, abi::{CFileMessage, CJID, CTextMessage, MessageType}, file_kind_discriminant, models::{JID, Mention, Message, MessageContent}, @@ -317,3 +316,32 @@ mod tests { assert_eq!(file.mentioned_count, 1); } } +use strum::FromRepr; + +#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] +pub struct ForwardReport { + pub succeeded: usize, + pub failed: usize, + pub failure: ForwardFailure, +} + +#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, FromRepr)] +#[repr(u8)] +pub enum ForwardFailure { + #[default] + None = 0, + SourceUnavailable = 1, + InvalidSource = 2, + InvalidDestination = 3, + SendFailed = 4, +} + +impl ForwardReport { + pub fn with_reason(succeeded: usize, failed: usize, failure: ForwardFailure) -> Self { + Self { + succeeded, + failed, + failure, + } + } +}