Browse Source

protocol: Filter::NOT_EMPTY to Filter::EMPTY

ipv6
Denis Drakhnia 1 year ago
parent
commit
2299010d97
  1. 18
      protocol/src/filter.rs

18
protocol/src/filter.rs

@ -50,8 +50,8 @@ bitflags! {
const SECURE = 1 << 1; const SECURE = 1 << 1;
/// Servers that are not password protected /// Servers that are not password protected
const PASSWORD = 1 << 2; const PASSWORD = 1 << 2;
/// Servers that are not empty /// Servers that are empty
const NOT_EMPTY = 1 << 3; const EMPTY = 1 << 3;
/// Servers that are not full /// Servers that are not full
const FULL = 1 << 4; const FULL = 1 << 4;
/// Servers that are empty /// Servers that are empty
@ -72,7 +72,7 @@ impl<T> From<&ServerAdd<T>> for FilterFlags {
flags.set(Self::DEDICATED, info.server_type == ServerType::Dedicated); flags.set(Self::DEDICATED, info.server_type == ServerType::Dedicated);
flags.set(Self::SECURE, info.flags.contains(ServerFlags::SECURE)); flags.set(Self::SECURE, info.flags.contains(ServerFlags::SECURE));
flags.set(Self::PASSWORD, info.flags.contains(ServerFlags::PASSWORD)); flags.set(Self::PASSWORD, info.flags.contains(ServerFlags::PASSWORD));
flags.set(Self::NOT_EMPTY, info.players > 0); flags.set(Self::EMPTY, info.players == 0);
flags.set(Self::FULL, info.players >= info.max); flags.set(Self::FULL, info.players >= info.max);
flags.set(Self::NOPLAYERS, info.players == 0); flags.set(Self::NOPLAYERS, info.players == 0);
flags.set(Self::NAT, info.flags.contains(ServerFlags::NAT)); flags.set(Self::NAT, info.flags.contains(ServerFlags::NAT));
@ -196,7 +196,7 @@ impl<'a> TryFrom<&'a [u8]> for Filter<'a> {
b"secure" => filter.insert_flag(FilterFlags::SECURE, cur.get_key_value()?), b"secure" => filter.insert_flag(FilterFlags::SECURE, cur.get_key_value()?),
b"gamedir" => filter.gamedir = Some(cur.get_key_value()?), b"gamedir" => filter.gamedir = Some(cur.get_key_value()?),
b"map" => filter.map = Some(cur.get_key_value()?), b"map" => filter.map = Some(cur.get_key_value()?),
b"empty" => filter.insert_flag(FilterFlags::NOT_EMPTY, cur.get_key_value()?), b"empty" => filter.insert_flag(FilterFlags::EMPTY, cur.get_key_value()?),
b"full" => filter.insert_flag(FilterFlags::FULL, cur.get_key_value()?), b"full" => filter.insert_flag(FilterFlags::FULL, cur.get_key_value()?),
b"password" => filter.insert_flag(FilterFlags::PASSWORD, cur.get_key_value()?), b"password" => filter.insert_flag(FilterFlags::PASSWORD, cur.get_key_value()?),
b"noplayers" => filter.insert_flag(FilterFlags::NOPLAYERS, cur.get_key_value()?), b"noplayers" => filter.insert_flag(FilterFlags::NOPLAYERS, cur.get_key_value()?),
@ -249,7 +249,7 @@ impl fmt::Display for &Filter<'_> {
if let Some(s) = self.map { if let Some(s) = self.map {
write!(fmt, "\\map\\{}", s)?; write!(fmt, "\\map\\{}", s)?;
} }
display_flag!("empty", FilterFlags::NOT_EMPTY); display_flag!("empty", FilterFlags::EMPTY);
display_flag!("full", FilterFlags::FULL); display_flag!("full", FilterFlags::FULL);
display_flag!("password", FilterFlags::PASSWORD); display_flag!("password", FilterFlags::PASSWORD);
display_flag!("noplayers", FilterFlags::NOPLAYERS); display_flag!("noplayers", FilterFlags::NOPLAYERS);
@ -330,10 +330,10 @@ mod tests {
flags: FilterFlags::PASSWORD, flags: FilterFlags::PASSWORD,
} }
} }
parse_empty(flags_mask: FilterFlags::NOT_EMPTY) { parse_empty(flags_mask: FilterFlags::EMPTY) {
b"\\empty\\0" => {} b"\\empty\\0" => {}
b"\\empty\\1" => { b"\\empty\\1" => {
flags: FilterFlags::NOT_EMPTY, flags: FilterFlags::EMPTY,
} }
} }
parse_full(flags_mask: FilterFlags::FULL) { parse_full(flags_mask: FilterFlags::FULL) {
@ -459,8 +459,8 @@ mod tests {
"0.0.0.0:0" => b"\\players\\8\\max\\8" "0.0.0.0:0" => b"\\players\\8\\max\\8"
}; };
matches!(servers, b"", 0, 1, 2); matches!(servers, b"", 0, 1, 2);
matches!(servers, b"\\empty\\0", 0); matches!(servers, b"\\empty\\0", 1, 2);
matches!(servers, b"\\empty\\1", 1, 2); matches!(servers, b"\\empty\\1", 0);
} }
#[test] #[test]

Loading…
Cancel
Save