#![cfg_attr(any(), rustfmt::skip)]
#![allow(clippy::upper_case_acronyms)]
use num_enum::{ IntoPrimitive, TryFromPrimitive };
use strum_macros::{ EnumString, EnumIter, Display, IntoStaticStr };
#[derive(Debug)]
#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[derive(EnumString, EnumIter, Display, IntoStaticStr)]
#[derive(Clone, Copy)]
#[repr(u8)]
#[non_exhaustive]
pub enum RegionalRoute {
AMERICAS = 1,
ASIA = 2,
EUROPE = 3,
SEA = 4,
#[deprecated]
APAC = 10,
ESPORTS = 11,
ESPORTSEU = 12,
}
#[derive(Debug)]
#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[derive(EnumString, EnumIter, Display, IntoStaticStr)]
#[derive(Clone, Copy)]
#[repr(u8)]
#[non_exhaustive]
pub enum PlatformRoute {
#[strum(to_string="BR1", serialize="BR")]
BR1 = 16,
#[strum(to_string="EUN1", serialize="EUNE")]
EUN1 = 17,
#[strum(to_string="EUW1", serialize="EUW")]
EUW1 = 18,
#[strum(to_string="JP1", serialize="JP")]
JP1 = 19,
KR = 20,
#[strum(to_string="LA1", serialize="LAN")]
LA1 = 21,
#[strum(to_string="LA2", serialize="LAS")]
LA2 = 22,
#[strum(to_string="ME1", serialize="MENA")]
ME1 = 37,
#[strum(to_string="NA1", serialize="NA")]
NA1 = 23,
#[strum(to_string="OC1", serialize="OCE")]
OC1 = 24,
#[deprecated]
#[strum(to_string="PH2", serialize="PH")]
PH2 = 32,
RU = 25,
#[strum(to_string="SG2", serialize="SG")]
SG2 = 33,
#[deprecated]
#[strum(to_string="TH2", serialize="TH")]
TH2 = 34,
#[strum(to_string="TR1", serialize="TR")]
TR1 = 26,
#[strum(to_string="TW2", serialize="TW")]
TW2 = 35,
#[strum(to_string="VN2", serialize="VN")]
VN2 = 36,
#[strum(to_string="PBE1", serialize="PBE")]
PBE1 = 31,
}
impl PlatformRoute {
pub const fn to_regional(self) -> RegionalRoute {
match self {
Self::BR1 => RegionalRoute::AMERICAS,
Self::EUN1 => RegionalRoute::EUROPE,
Self::EUW1 => RegionalRoute::EUROPE,
Self::JP1 => RegionalRoute::ASIA,
Self::KR => RegionalRoute::ASIA,
Self::LA1 => RegionalRoute::AMERICAS,
Self::LA2 => RegionalRoute::AMERICAS,
Self::ME1 => RegionalRoute::EUROPE,
Self::NA1 => RegionalRoute::AMERICAS,
Self::OC1 => RegionalRoute::SEA,
Self::PH2 => RegionalRoute::SEA,
Self::RU => RegionalRoute::EUROPE,
Self::SG2 => RegionalRoute::SEA,
Self::TH2 => RegionalRoute::SEA,
Self::TR1 => RegionalRoute::EUROPE,
Self::TW2 => RegionalRoute::SEA,
Self::VN2 => RegionalRoute::SEA,
Self::PBE1 => RegionalRoute::AMERICAS,
}
}
pub const fn to_regional_lor(self) -> RegionalRoute {
match self {
Self::BR1 => RegionalRoute::AMERICAS,
Self::EUN1 => RegionalRoute::EUROPE,
Self::EUW1 => RegionalRoute::EUROPE,
Self::JP1 => RegionalRoute::ASIA,
Self::KR => RegionalRoute::ASIA,
Self::LA1 => RegionalRoute::AMERICAS,
Self::LA2 => RegionalRoute::AMERICAS,
Self::ME1 => RegionalRoute::EUROPE,
Self::NA1 => RegionalRoute::AMERICAS,
Self::OC1 => RegionalRoute::SEA,
Self::PH2 => RegionalRoute::SEA,
Self::RU => RegionalRoute::SEA,
Self::SG2 => RegionalRoute::SEA,
Self::TH2 => RegionalRoute::SEA,
Self::TR1 => RegionalRoute::SEA,
Self::TW2 => RegionalRoute::SEA,
Self::VN2 => RegionalRoute::SEA,
Self::PBE1 => RegionalRoute::AMERICAS,
}
}
pub const fn to_tournament_region(self) -> Option<TournamentRegion> {
match self {
Self::BR1 => Some(TournamentRegion::BR),
Self::EUN1 => Some(TournamentRegion::EUNE),
Self::EUW1 => Some(TournamentRegion::EUW),
Self::JP1 => Some(TournamentRegion::JP),
Self::LA1 => Some(TournamentRegion::LAN),
Self::LA2 => Some(TournamentRegion::LAS),
Self::NA1 => Some(TournamentRegion::NA),
Self::OC1 => Some(TournamentRegion::OCE),
Self::TR1 => Some(TournamentRegion::TR),
Self::PBE1 => Some(TournamentRegion::PBE),
_other => None,
}
}
pub fn as_region_str(self) -> &'static str {
match self {
Self::BR1 => "BR",
Self::EUN1 => "EUNE",
Self::EUW1 => "EUW",
Self::JP1 => "JP",
Self::LA1 => "LAN",
Self::LA2 => "LAS",
Self::ME1 => "MENA",
Self::NA1 => "NA",
Self::OC1 => "OCE",
Self::PH2 => "PH",
Self::SG2 => "SG",
Self::TH2 => "TH",
Self::TR1 => "TR",
Self::TW2 => "TW",
Self::VN2 => "VN",
Self::PBE1 => "PBE",
other => other.into(),
}
}
}
#[derive(Debug)]
#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[derive(EnumString, EnumIter, Display, IntoStaticStr)]
#[derive(Clone, Copy)]
#[repr(u8)]
#[non_exhaustive]
pub enum ValPlatformRoute {
AP = 64,
BR = 65,
EU = 66,
KR = 70,
LATAM = 68,
NA = 69,
ESPORTS = 95,
}
#[derive(Debug)]
#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[derive(EnumString, EnumIter, Display, IntoStaticStr)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[derive(Clone, Copy)]
#[repr(u8)]
#[non_exhaustive]
pub enum TournamentRegion {
#[strum(to_string="BR", serialize="BR1")]
#[serde(alias = "BR1")]
BR = 16,
#[strum(to_string="EUNE", serialize="EUN1")]
#[serde(alias = "EUN1")]
EUNE = 17,
#[strum(to_string="EUW", serialize="EUW1")]
#[serde(alias = "EUW1")]
EUW = 18,
#[strum(to_string="JP", serialize="JP1")]
#[serde(alias = "JP1")]
JP = 19,
#[strum(to_string="LAN", serialize="LA1")]
#[serde(alias = "LA1")]
LAN = 21,
#[strum(to_string="LAS", serialize="LA2")]
#[serde(alias = "LA2")]
LAS = 22,
#[strum(to_string="NA", serialize="NA1")]
#[serde(alias = "NA1")]
NA = 23,
#[strum(to_string="OCE", serialize="OC1")]
#[serde(alias = "OC1")]
OCE = 24,
#[strum(to_string="TR", serialize="TR1")]
#[serde(alias = "TR1")]
TR = 26,
#[strum(to_string="PBE", serialize="PBE1")]
#[serde(alias = "PBE1")]
PBE = 31,
}