Skip to main content

boon/
game_modes.rs

1//! Game mode ID to name mapping for Deadlock.
2//!
3//! Last updated: 2026-03-21
4
5/// All known game mode (ID, name) pairs sorted by ID.
6const GAME_MODES: &[(i64, &str)] = &[(1, "6v6"), (4, "street_brawl")];
7
8/// Look up a game mode name by ID. Returns `"GAME_MODE_NOT_FOUND"` for unknown IDs.
9pub fn game_mode_name(id: i64) -> &'static str {
10    GAME_MODES
11        .iter()
12        .find(|&&(k, _)| k == id)
13        .map(|&(_, v)| v)
14        .unwrap_or("GAME_MODE_NOT_FOUND")
15}
16
17/// Return all known (game mode ID, game mode name) pairs.
18pub fn all_game_modes() -> &'static [(i64, &'static str)] {
19    GAME_MODES
20}
21
22#[cfg(test)]
23mod tests {
24    use super::*;
25
26    #[test]
27    fn known_game_mode_6v6() {
28        assert_eq!(game_mode_name(1), "6v6");
29    }
30
31    #[test]
32    fn known_game_mode_street_brawl() {
33        assert_eq!(game_mode_name(4), "street_brawl");
34    }
35
36    #[test]
37    fn unknown_game_mode() {
38        assert_eq!(game_mode_name(99), "GAME_MODE_NOT_FOUND");
39    }
40
41    #[test]
42    fn all_game_modes_count() {
43        assert_eq!(all_game_modes().len(), 2);
44    }
45}