Merge branch 'v0' of ssh://ssh.spbr.net:51122/spacebar/rust-nex into v0

This commit is contained in:
Maple Nebel 2026-05-05 18:03:20 +02:00
commit f678bcc929
3 changed files with 23 additions and 24 deletions

View file

@ -399,31 +399,28 @@ impl ExtendedMatchmakeSession {
#[cfg(feature = "splatoon")]
{
if search_criteria
.attribs
.get(0)
.map(|str| str.parse().ok())
.flatten()
!= self.session.attributes.get(0).map(|v| *v)
{
if search_criteria.attribs.get(0).is_some_and(|s| {
self.session
.attributes
.get(0)
.is_some_and(|a| s.0.contains(a))
}) {
return Ok(false);
}
if search_criteria
.attribs
.get(2)
.map(|str| str.parse().ok())
.flatten()
!= self.session.attributes.get(2).map(|v| *v)
{
if search_criteria.attribs.get(2).is_some_and(|s| {
self.session
.attributes
.get(2)
.is_some_and(|a| s.0.contains(a))
}) {
return Ok(false);
}
if search_criteria
.attribs
.get(3)
.map(|str| str.parse().ok())
.flatten()
!= self.session.attributes.get(3).map(|v| *v)
{
if search_criteria.attribs.get(3).is_some_and(|s| {
self.session
.attributes
.get(3)
.is_some_and(|a| s.0.contains(a))
}) {
return Ok(false);
}
}

View file

@ -5,6 +5,8 @@ use rnex_core::rmc::structures::variant::Variant;
use rnex_core::PID;
use crate::rmc::structures::string_set::StringSet;
// rmc structure
#[derive(RmcSerialize, Debug, Clone, Default, PartialEq)]
#[rmc_struct(0)]
@ -75,7 +77,7 @@ cfg_if! {
#[derive(RmcSerialize, Debug, Clone)]
#[rmc_struct(3)]
pub struct MatchmakeSessionSearchCriteria {
pub attribs: Vec<String>,
pub attribs: Vec<StringSet<u32>>,
pub game_mode: String,
pub minimum_participants: String,
pub maximum_participants: String,

View file

@ -2,8 +2,8 @@ use std::{collections::HashSet, hash::Hash, str::FromStr, string::ToString};
use rnex_core::rmc::structures::RmcSerialize;
#[derive(Debug)]
struct StringSet<T: FromStr + ToString + Eq>(HashSet<T>)
#[derive(Debug, Clone)]
pub struct StringSet<T: FromStr + ToString + Eq>(pub HashSet<T>)
where
<T as FromStr>::Err: std::error::Error + Send + Sync + 'static;