{{
    const dotUtils = require('./dotUtils.js');
    const gameModes = require('./.gameModes.json');
}}{{= dotUtils.preamble() }}

use strum_macros::{ EnumString, Display, AsRefStr, IntoStaticStr };

/// League of Legends game mode, such as Classic,
/// ARAM, URF, One For All, Ascension, etc.
#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash)]
#[derive(EnumString, Display, AsRefStr, IntoStaticStr)]
#[repr(u8)]
pub enum GameMode {
{{
    for (const { gameMode, description } of gameModes) {
}}
    /// {{= description }}
    {{= gameMode }},
{{
    }
}}
}

serde_string!(GameMode);