From 0ca0bb9548ca78dfc65cf7190b98a8aa4f0ef2db Mon Sep 17 00:00:00 2001 From: kaichaosun Date: Tue, 3 Feb 2026 14:53:55 +0800 Subject: [PATCH] chore: isolate ffi functions --- conversations/src/{dm => }/common.rs | 0 conversations/src/context.rs | 2 +- conversations/src/dm/mod.rs | 1 - conversations/src/dm/privatev1.rs | 2 +- conversations/src/{ => ffi}/api.rs | 0 conversations/src/ffi/mod.rs | 1 + conversations/src/inbox/inbox.rs | 2 +- conversations/src/lib.rs | 19 +++++++++++-------- conversations/src/types.rs | 2 -- 9 files changed, 15 insertions(+), 14 deletions(-) rename conversations/src/{dm => }/common.rs (100%) rename conversations/src/{ => ffi}/api.rs (100%) create mode 100644 conversations/src/ffi/mod.rs diff --git a/conversations/src/dm/common.rs b/conversations/src/common.rs similarity index 100% rename from conversations/src/dm/common.rs rename to conversations/src/common.rs diff --git a/conversations/src/context.rs b/conversations/src/context.rs index 313f6b7..e21ba1b 100644 --- a/conversations/src/context.rs +++ b/conversations/src/context.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, rc::Rc, sync::Arc}; use crate::{ - dm::common::{HasConversationId, OutboundSession, SessionRegistry}, + common::{HasConversationId, OutboundSession, SessionRegistry}, errors::ChatError, identity::Identity, inbox::Inbox, diff --git a/conversations/src/dm/mod.rs b/conversations/src/dm/mod.rs index a2c5e4b..646c64c 100644 --- a/conversations/src/dm/mod.rs +++ b/conversations/src/dm/mod.rs @@ -1,2 +1 @@ -pub mod common; pub mod privatev1; diff --git a/conversations/src/dm/privatev1.rs b/conversations/src/dm/privatev1.rs index 87ad551..4175d1f 100644 --- a/conversations/src/dm/privatev1.rs +++ b/conversations/src/dm/privatev1.rs @@ -6,7 +6,7 @@ use crypto::SecretKey; use prost::{Message, bytes::Bytes}; use crate::{ - dm::common::{HasConversationId, OutboundSession, SessionId}, + common::{HasConversationId, OutboundSession, SessionId}, errors::ChatError, types::AddressedEncryptedPayload, utils::timestamp_millis, diff --git a/conversations/src/api.rs b/conversations/src/ffi/api.rs similarity index 100% rename from conversations/src/api.rs rename to conversations/src/ffi/api.rs diff --git a/conversations/src/ffi/mod.rs b/conversations/src/ffi/mod.rs new file mode 100644 index 0000000..e5fdf85 --- /dev/null +++ b/conversations/src/ffi/mod.rs @@ -0,0 +1 @@ +pub mod api; diff --git a/conversations/src/inbox/inbox.rs b/conversations/src/inbox/inbox.rs index 041e651..108b1d2 100644 --- a/conversations/src/inbox/inbox.rs +++ b/conversations/src/inbox/inbox.rs @@ -7,8 +7,8 @@ use std::rc::Rc; use crypto::{PrekeyBundle, SecretKey}; +use crate::common::{HasConversationId, InboundSessionHandler, OutboundSession, SessionId}; use crate::context::Introduction; -use crate::dm::common::{HasConversationId, InboundSessionHandler, OutboundSession, SessionId}; use crate::dm::privatev1::PrivateV1Convo; use crate::errors::ChatError; use crate::identity::Identity; diff --git a/conversations/src/lib.rs b/conversations/src/lib.rs index f220b21..c40aaa0 100644 --- a/conversations/src/lib.rs +++ b/conversations/src/lib.rs @@ -1,20 +1,23 @@ -mod api; -mod context; +pub mod common; pub mod dm; -mod errors; -mod group; -mod identity; +pub mod ffi; +pub mod group; pub mod inbox; + +mod context; +mod errors; +mod identity; mod proto; mod types; mod utils; -pub use api::*; - #[cfg(test)] mod tests { - use super::*; + use crate::ffi::api::{ + create_context, create_intro_bundle, create_new_private_convo, destroy_context, + handle_payload, + }; use std::str::FromStr; #[test] diff --git a/conversations/src/types.rs b/conversations/src/types.rs index 8d12f40..da44f38 100644 --- a/conversations/src/types.rs +++ b/conversations/src/types.rs @@ -1,7 +1,5 @@ use crate::proto::{self, Message}; -// FFI Type definitions - // This struct represents Outbound data. // It wraps an encoded payload with a delivery address, so it can be handled by the delivery service. pub struct AddressedEnvelope {