diff --git a/Cargo.lock b/Cargo.lock index d525c4e..bb505c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -286,7 +286,11 @@ name = "backend-secure" version = "0.1.0" dependencies = [ "rnex-base", + "rnex-ds", + "rnex-fpd", "rnex-mm", + "rnex-msg", + "rnex-rk", "rnex-server", "tokio", ] diff --git a/rnex-server-nex-modules/rnex-msg/src/lib.rs b/rnex-server-nex-modules/rnex-msg/src/lib.rs index 9490f9f..5b9a17e 100644 --- a/rnex-server-nex-modules/rnex-msg/src/lib.rs +++ b/rnex-server-nex-modules/rnex-msg/src/lib.rs @@ -1,8 +1,8 @@ -use std::collections::HashMap; +use std::{collections::HashMap, convert::Infallible}; use rnex_msg_protos::RemoteMessagingClient; use rnex_rmc::{RmcPureRemoteObject, util::PID}; -use rnex_server::{ConnectionInitData, RnexManager, WeakPassthroughInitModule}; +use rnex_server::{ConnectionInitData, RnexManager, RnexModule, WeakPassthroughInitModule}; use tokio::sync::RwLock; use crate::user::MessagingUser; @@ -38,3 +38,17 @@ impl RnexManager for MessagingManager { } } } + +impl RnexModule for MessagingModule { + type Manager = MessagingManager; + + type InitError = Infallible; + + async fn create_manager( + _: &rnex_server::ModuleHolder, + ) -> Result { + Ok(MessagingManager { + users_by_pid: Default::default(), + }) + } +} diff --git a/rnex-server/backend-secure/Cargo.toml b/rnex-server/backend-secure/Cargo.toml index c19ee17..42b3e54 100644 --- a/rnex-server/backend-secure/Cargo.toml +++ b/rnex-server/backend-secure/Cargo.toml @@ -7,7 +7,15 @@ edition = "2024" rnex-server = {path = ".."} rnex-base = {path = "../../rnex-server-nex-modules/rnex-base"} rnex-mm = {path = "../../rnex-server-nex-modules/rnex-mm", optional = true} +rnex-ds = {path = "../../rnex-server-nex-modules/rnex-ds", optional = true} +rnex-fpd = {path = "../../rnex-server-nex-modules/rnex-fpd", optional = true} +rnex-msg = {path = "../../rnex-server-nex-modules/rnex-msg", optional = true} +rnex-rk = {path = "../../rnex-server-nex-modules/rnex-rk", optional = true} tokio = { version = "1.52.3", features = ["time", "sync", "rt-multi-thread"] } [features] match-making = ["dep:rnex-mm"] +datastore = ["dep:rnex-ds"] +friends = ["dep:rnex-fpd"] +messaging = ["dep:rnex-msg"] +ranking = ["dep:rnex-rk"] diff --git a/rnex-server/backend-secure/src/main.rs b/rnex-server/backend-secure/src/main.rs index b5d6209..3e6e022 100644 --- a/rnex-server/backend-secure/src/main.rs +++ b/rnex-server/backend-secure/src/main.rs @@ -1,6 +1,15 @@ use rnex_base::BaseModule; +#[cfg(feature = "datastore")] +use rnex_ds::DatastoreModule; +#[cfg(feature = "friends")] +use rnex_fpd::FriendsModule; #[cfg(feature = "match-making")] use rnex_mm::MatchMakeModule; +#[cfg(feature = "messaging")] +use rnex_msg::MessagingModule; +#[cfg(feature = "ranking")] +use rnex_rk::RankingModule; + use rnex_server::{ConnectionInitData, launch_rnex_module_server}; #[tokio::main] @@ -9,7 +18,15 @@ async fn main() { ConnectionInitData; BaseModule, #[cfg(feature="match-making")] - MatchMakeModule + MatchMakeModule, + #[cfg(feature="datastore")] + DatastoreModule, + #[cfg(feature="friends")] + FriendsModule, + #[cfg(feature="ranking")] + RankingModule, + #[cfg(feature="messaging")] + MessagingModule } }