Compare commits

...

2 commits

Author SHA1 Message Date
c8626564d4 Merge branch 'v0' of ssh://ssh.spbr.net:51122/spacebar/rust-nex into v0
Some checks are pending
Build and Test / wii-u-chat (push) Waiting to run
Build and Test / splatoon (push) Waiting to run
Build and Test / friends (push) Waiting to run
Build and Test / super-mario-maker (push) Waiting to run
2026-04-28 15:23:04 +02:00
b9bfac8c70 implement find by single id 2026-04-28 15:22:42 +02:00
2 changed files with 15 additions and 0 deletions

View file

@ -52,6 +52,8 @@ use rnex_core::rmc::structures::ranking::UploadCompetitionData;
use std::sync::{Arc, Weak};
use tokio::sync::{Mutex, RwLock};
use crate::rmc::structures::Error;
cfg_if! {
if #[cfg(feature = "datastore")] {
use rnex_core::rmc::protocols::datastore::{DataStore, RawDataStore, RawDataStoreInfo, RemoteDataStore};
@ -509,6 +511,15 @@ impl MatchmakeExtension for User {
}
impl Matchmake for User {
async fn find_by_single_id(&self, gid: u32) -> Result<(bool, Any), ErrorCode> {
let s = self.matchmake_manager.get_session(gid).await?;
let s = s.lock().await;
Ok((
true,
Any::new(&s.session).map_err(|_| ErrorCode::Custom_Unknown)?,
))
}
async fn unregister_gathering(&self, _gid: u32) -> Result<bool, ErrorCode> {
Ok(true)
}

View file

@ -4,10 +4,14 @@ use rnex_core::rmc::response::ErrorCode;
use rnex_core::PID;
use crate::rmc::structures::any::Any;
#[rmc_proto(21)]
pub trait Matchmake {
#[method_id(2)]
async fn unregister_gathering(&self, gid: u32) -> Result<bool, ErrorCode>;
#[method_id(21)]
async fn find_by_single_id(&self, gid: u32) -> Result<(bool, Any), ErrorCode>;
#[method_id(41)]
async fn get_session_urls(&self, gid: u32) -> Result<Vec<StationUrl>, ErrorCode>;
#[method_id(42)]