mirror of
https://git.mentality.rip/numas13/xash3d-master.git
synced 2025-02-08 13:14:15 +00:00
Some filter docs and tests cleanup
This commit is contained in:
parent
85d2bb84e9
commit
159aa1b084
@ -1,6 +1,33 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
// SPDX-FileCopyrightText: 2023 Denis Drakhnia <numas13@gmail.com>
|
// SPDX-FileCopyrightText: 2023 Denis Drakhnia <numas13@gmail.com>
|
||||||
|
|
||||||
|
//! Server query filter
|
||||||
|
//!
|
||||||
|
//! # Supported filters:
|
||||||
|
//!
|
||||||
|
//! | Filter | Type | Description | Examples |
|
||||||
|
//! | --------- | ---- | ------------------------------ | -------- |
|
||||||
|
//! | map | str | Map name | `crossfire`, `de_dust` |
|
||||||
|
//! | gamedir | str | Game directory | `valve`, `cstrike` |
|
||||||
|
//! | dedicated | bool | Server running dedicated | `0`, `1` |
|
||||||
|
//! | lan | bool | Server is LAN | `0`, `1` |
|
||||||
|
//! | nat | bool | Server behind NAT | `0`, `1` |
|
||||||
|
//! | noplayers | bool | Server is empty | `0`, `1` |
|
||||||
|
//! | empty | bool | Server is not empty | `0`, `1` |
|
||||||
|
//! | full | bool | Server is not full | `0`, `1` |
|
||||||
|
//! | password | bool | Server is password prodected | `0`, `1` |
|
||||||
|
//! | secure | bool | Server using anti-cheat | `0`, `1` |
|
||||||
|
//! | bots | bool | Server has bots | `0`, `1` |
|
||||||
|
//!
|
||||||
|
//! # Examples:
|
||||||
|
//!
|
||||||
|
//! Filter `\gamedir\valve\full\1\bots\0\password\0` will select server if:
|
||||||
|
//!
|
||||||
|
//! * It is Half-Life server
|
||||||
|
//! * Is not full
|
||||||
|
//! * Do not have bots
|
||||||
|
//! * Is not protected by a password
|
||||||
|
|
||||||
use std::net::SocketAddrV4;
|
use std::net::SocketAddrV4;
|
||||||
|
|
||||||
use bitflags::bitflags;
|
use bitflags::bitflags;
|
||||||
@ -58,9 +85,9 @@ pub struct Filter<'a> {
|
|||||||
pub gamedir: Option<&'a str>,
|
pub gamedir: Option<&'a str>,
|
||||||
/// Servers running the specified map (ex. cs_italy)
|
/// Servers running the specified map (ex. cs_italy)
|
||||||
pub map: Option<&'a str>,
|
pub map: Option<&'a str>,
|
||||||
/// Servers with their hostname matching [hostname] (can use * as a wildcard)
|
/// Servers with their hostname matching \[hostname\] (can use * as a wildcard)
|
||||||
pub name_match: Option<&'a str>,
|
pub name_match: Option<&'a str>,
|
||||||
/// Servers running version [version] (can use * as a wildcard)
|
/// Servers running version \[version\] (can use * as a wildcard)
|
||||||
pub version_match: Option<&'a str>,
|
pub version_match: Option<&'a str>,
|
||||||
/// Return only servers on the specified IP address (port supported and optional)
|
/// Return only servers on the specified IP address (port supported and optional)
|
||||||
pub gameaddr: Option<SocketAddrV4>,
|
pub gameaddr: Option<SocketAddrV4>,
|
||||||
@ -282,30 +309,21 @@ mod tests {
|
|||||||
|
|
||||||
parse_all {
|
parse_all {
|
||||||
b"\
|
b"\
|
||||||
\\appid\\70\
|
|
||||||
\\bots\\1\
|
\\bots\\1\
|
||||||
\\clver\\0.20\
|
\\clver\\0.20\
|
||||||
\\collapse_addr_hash\\1\
|
|
||||||
\\dedicated\\1\
|
\\dedicated\\1\
|
||||||
\\empty\\1\
|
\\empty\\1\
|
||||||
\\full\\1\
|
\\full\\1\
|
||||||
\\gameaddr\\192.168.1.100\
|
\\gameaddr\\192.168.1.100\
|
||||||
\\gamedata\\a,b,c,d\
|
|
||||||
\\gamedataor\\a,b,c,d\
|
|
||||||
\\gamedir\\valve\
|
\\gamedir\\valve\
|
||||||
\\gametype\\a,b,c,d\
|
|
||||||
\\lan\\1\
|
\\lan\\1\
|
||||||
\\linux\\1\
|
|
||||||
\\map\\crossfire\
|
\\map\\crossfire\
|
||||||
\\name_match\\localhost\
|
\\name_match\\localhost\
|
||||||
\\napp\\60\
|
|
||||||
\\nat\\1\
|
\\nat\\1\
|
||||||
\\noplayers\\1\
|
\\noplayers\\1\
|
||||||
\\password\\1\
|
\\password\\1\
|
||||||
\\proxy\\1\
|
|
||||||
\\secure\\1\
|
\\secure\\1\
|
||||||
\\version_match\\1.2.3.4\
|
\\version_match\\1.2.3.4\
|
||||||
\\white\\1\
|
|
||||||
" => {
|
" => {
|
||||||
gamedir: Some("valve"),
|
gamedir: Some("valve"),
|
||||||
map: Some("crossfire"),
|
map: Some("crossfire"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user