mirror of
https://github.com/MingweiSamuel/Riven.git
synced 2024-12-27 03:16:33 +00:00
adding enums to serialization
This commit is contained in:
parent
fdd1b1516c
commit
58cf643e13
20 changed files with 188 additions and 72 deletions
|
@ -1,16 +1,27 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
use std::fmt;
|
||||
use num_derive;
|
||||
use num_derive::{ FromPrimitive, ToPrimitive };
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legend's champions.
|
||||
///
|
||||
/// The documentation of each variant specifies:<br>
|
||||
/// NAME (`IDENTIFIER`, ID).
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(num_derive::FromPrimitive, num_derive::ToPrimitive)]
|
||||
#[derive(FromPrimitive, ToPrimitive)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(i16)]
|
||||
pub enum Champion {
|
||||
/// A champion that doesn't exist. Used in TeamBans when no ban occured.
|
||||
None = -1,
|
||||
|
||||
/** Aatrox (`Aatrox`, 266). */ Aatrox = 266,
|
||||
/** Ahri (`Ahri`, 103). */ Ahri = 103,
|
||||
/** Akali (`Akali`, 84). */ Akali = 84,
|
||||
|
@ -161,6 +172,7 @@ pub enum Champion {
|
|||
impl Champion {
|
||||
pub fn name(self) -> &'static str {
|
||||
match self {
|
||||
Self::None => "None",
|
||||
Self::Aatrox => "Aatrox",
|
||||
Self::Ahri => "Ahri",
|
||||
Self::Akali => "Akali",
|
||||
|
@ -311,6 +323,7 @@ impl Champion {
|
|||
|
||||
pub fn identifier(self) -> &'static str {
|
||||
match self {
|
||||
Self::None => "None",
|
||||
Self::Aatrox => "Aatrox",
|
||||
Self::Ahri => "Ahri",
|
||||
Self::Akali => "Akali",
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
#![allow(deprecated)]
|
||||
|
||||
use strum_macros::{ EnumString, Display, AsRefStr };
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
|
||||
#[derive(EnumString, Display, AsRefStr)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(u8)]
|
||||
pub enum Division {
|
||||
I = 1,
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
use strum_macros::{ EnumString, Display, AsRefStr };
|
||||
|
||||
|
@ -65,3 +70,5 @@ pub enum GameMode {
|
|||
#[strum(to_string="ODYSSEY")]
|
||||
Odyssey,
|
||||
}
|
||||
|
||||
serde_string!(GameMode);
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
use strum_macros::{ EnumString, Display, AsRefStr };
|
||||
|
||||
|
@ -19,3 +24,5 @@ pub enum GameType {
|
|||
#[strum(to_string="MATCHED_GAME")]
|
||||
MatchedGame,
|
||||
}
|
||||
|
||||
serde_string!(GameType);
|
||||
|
|
24
src/consts/macro_serde_string.rs
Normal file
24
src/consts/macro_serde_string.rs
Normal file
|
@ -0,0 +1,24 @@
|
|||
#![macro_use]
|
||||
#[macro_export]
|
||||
macro_rules! serde_string {
|
||||
( $x:ty ) => {
|
||||
impl<'de> serde::de::Deserialize<'de> for $x
|
||||
{
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where
|
||||
D: serde::de::Deserializer<'de>
|
||||
{
|
||||
let s = String::deserialize(deserializer)?;
|
||||
s.parse().map_err(serde::de::Error::custom)
|
||||
}
|
||||
}
|
||||
impl serde::ser::Serialize for $x {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::ser::Serializer,
|
||||
{
|
||||
serializer.serialize_str(self.as_ref())
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
|
@ -1,9 +1,17 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legends maps.
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(u8)]
|
||||
pub enum Map {
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
//! Constant data and Enums relevant to the Riot Games API.
|
||||
|
||||
mod macro_serde_string;
|
||||
|
||||
mod champion;
|
||||
pub use champion::*;
|
||||
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
#![allow(deprecated)]
|
||||
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
|
|
@ -18,6 +18,8 @@ pub enum QueueType {
|
|||
RankedTft,
|
||||
}
|
||||
|
||||
serde_string!(QueueType);
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legends matchmaking seasons.
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(u8)]
|
||||
pub enum Season {
|
||||
Preseason3 = 0,
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legends team.
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Eq, PartialEq, Hash, Ord, PartialOrd)]
|
||||
/// League of Legends team.
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(u8)]
|
||||
pub enum Team {
|
||||
/// Blue team (bottom left on Summoner's Rift).
|
||||
Blue = 100,
|
||||
|
|
|
@ -18,6 +18,8 @@ pub enum Tier {
|
|||
#[strum(to_string="CHALLENGER")] Challenger = 240,
|
||||
}
|
||||
|
||||
serde_string!(Tier);
|
||||
|
||||
impl Tier {
|
||||
/// If this tier is "standard".
|
||||
/// Standard means non-apex (not master+), and not unranked.
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
// http://www.mingweisamuel.com/riotapi-schema/tool/
|
||||
// Version b2fb0513c3cdb6baa0ba78bd2a50b43670161980
|
||||
|
@ -125,7 +130,7 @@ impl<'a> ChampionMasteryV4<'a> {
|
|||
/// * `region` - Region to query.
|
||||
/// * `championId` - Champion ID to retrieve Champion Mastery for
|
||||
/// * `encryptedSummonerId` - Summoner ID associated with the player
|
||||
pub fn get_champion_mastery(&self, region: Region, encrypted_summoner_id: &str, champion_id: i64)
|
||||
pub fn get_champion_mastery(&self, region: Region, encrypted_summoner_id: &str, champion_id: crate::consts::Champion)
|
||||
-> impl Future<Output = Result<Option<champion_mastery_v4::ChampionMastery>>> + 'a
|
||||
{
|
||||
let path_string = format!("/lol/champion-mastery/v4/champion-masteries/by-summoner/{}/by-champion/{}", encrypted_summoner_id, champion_id);
|
||||
|
@ -184,7 +189,7 @@ impl<'a> LeagueExpV4<'a> {
|
|||
/// * `tier`
|
||||
/// * `division`
|
||||
/// * `page` (optional) - Starts with page 1.
|
||||
pub fn get_league_entries(&self, region: Region, division: &str, tier: &str, queue: &str, page: Option<i32>)
|
||||
pub fn get_league_entries(&self, region: Region, division: crate::consts::Division, tier: crate::consts::Tier, queue: crate::consts::QueueType, page: Option<i32>)
|
||||
-> impl Future<Output = Result<Option<Vec<league_exp_v4::LeagueEntry>>>> + 'a
|
||||
{
|
||||
let mut query_params = Serializer::new(String::new());
|
||||
|
@ -209,7 +214,7 @@ impl<'a> LeagueV4<'a> {
|
|||
/// # Parameters
|
||||
/// * `region` - Region to query.
|
||||
/// * `queue`
|
||||
pub fn get_challenger_league(&self, region: Region, queue: &str)
|
||||
pub fn get_challenger_league(&self, region: Region, queue: crate::consts::QueueType)
|
||||
-> impl Future<Output = Result<Option<league_v4::LeagueList>>> + 'a
|
||||
{
|
||||
let path_string = format!("/lol/league/v4/challengerleagues/by-queue/{}", queue);
|
||||
|
@ -238,7 +243,7 @@ impl<'a> LeagueV4<'a> {
|
|||
/// * `tier`
|
||||
/// * `queue` - Note that the queue value must be a valid ranked queue.
|
||||
/// * `page` (optional) - Starts with page 1.
|
||||
pub fn get_league_entries(&self, region: Region, queue: &str, tier: &str, division: &str, page: Option<i32>)
|
||||
pub fn get_league_entries(&self, region: Region, queue: crate::consts::QueueType, tier: crate::consts::Tier, division: crate::consts::Division, page: Option<i32>)
|
||||
-> impl Future<Output = Result<Option<Vec<league_v4::LeagueEntry>>>> + 'a
|
||||
{
|
||||
let mut query_params = Serializer::new(String::new());
|
||||
|
@ -254,7 +259,7 @@ impl<'a> LeagueV4<'a> {
|
|||
/// # Parameters
|
||||
/// * `region` - Region to query.
|
||||
/// * `queue`
|
||||
pub fn get_grandmaster_league(&self, region: Region, queue: &str)
|
||||
pub fn get_grandmaster_league(&self, region: Region, queue: crate::consts::QueueType)
|
||||
-> impl Future<Output = Result<Option<league_v4::LeagueList>>> + 'a
|
||||
{
|
||||
let path_string = format!("/lol/league/v4/grandmasterleagues/by-queue/{}", queue);
|
||||
|
@ -280,7 +285,7 @@ impl<'a> LeagueV4<'a> {
|
|||
/// # Parameters
|
||||
/// * `region` - Region to query.
|
||||
/// * `queue`
|
||||
pub fn get_master_league(&self, region: Region, queue: &str)
|
||||
pub fn get_master_league(&self, region: Region, queue: crate::consts::QueueType)
|
||||
-> impl Future<Output = Result<Option<league_v4::LeagueList>>> + 'a
|
||||
{
|
||||
let path_string = format!("/lol/league/v4/masterleagues/by-queue/{}", queue);
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
// This file is automatically generated.
|
||||
// Do not directly edit.
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////
|
||||
|
||||
// http://www.mingweisamuel.com/riotapi-schema/tool/
|
||||
// Version b2fb0513c3cdb6baa0ba78bd2a50b43670161980
|
||||
|
@ -24,7 +29,7 @@ pub mod champion_mastery_v4 {
|
|||
pub champion_points: i32,
|
||||
/// Champion ID for this entry.
|
||||
#[serde(rename = "championId")]
|
||||
pub champion_id: i64,
|
||||
pub champion_id: crate::consts::Champion,
|
||||
/// Number of points needed to achieve next level. Zero if player reached maximum champion level for this champion.
|
||||
#[serde(rename = "championPointsUntilNextLevel")]
|
||||
pub champion_points_until_next_level: i64,
|
||||
|
@ -67,7 +72,7 @@ pub mod league_exp_v4 {
|
|||
#[derive(serde::Serialize, serde::Deserialize)]
|
||||
pub struct LeagueEntry {
|
||||
#[serde(rename = "queueType")]
|
||||
pub queue_type: String,
|
||||
pub queue_type: crate::consts::QueueType,
|
||||
#[serde(rename = "summonerName")]
|
||||
pub summoner_name: String,
|
||||
#[serde(rename = "hotStreak")]
|
||||
|
@ -83,7 +88,7 @@ pub mod league_exp_v4 {
|
|||
#[serde(rename = "losses")]
|
||||
pub losses: i32,
|
||||
#[serde(rename = "rank")]
|
||||
pub rank: String,
|
||||
pub rank: crate::consts::Division,
|
||||
#[serde(rename = "leagueId")]
|
||||
pub league_id: String,
|
||||
#[serde(rename = "inactive")]
|
||||
|
@ -91,7 +96,7 @@ pub mod league_exp_v4 {
|
|||
#[serde(rename = "freshBlood")]
|
||||
pub fresh_blood: bool,
|
||||
#[serde(rename = "tier")]
|
||||
pub tier: String,
|
||||
pub tier: crate::consts::Tier,
|
||||
/// Player's summonerId (Encrypted)
|
||||
#[serde(rename = "summonerId")]
|
||||
pub summoner_id: String,
|
||||
|
@ -123,11 +128,11 @@ pub mod league_v4 {
|
|||
#[serde(rename = "leagueId")]
|
||||
pub league_id: String,
|
||||
#[serde(rename = "tier")]
|
||||
pub tier: String,
|
||||
pub tier: crate::consts::Tier,
|
||||
#[serde(rename = "entries")]
|
||||
pub entries: std::vec::Vec<LeagueItem>,
|
||||
#[serde(rename = "queue")]
|
||||
pub queue: String,
|
||||
pub queue: crate::consts::QueueType,
|
||||
#[serde(rename = "name")]
|
||||
pub name: String,
|
||||
}
|
||||
|
@ -154,7 +159,7 @@ pub mod league_v4 {
|
|||
#[serde(rename = "inactive")]
|
||||
pub inactive: bool,
|
||||
#[serde(rename = "rank")]
|
||||
pub rank: String,
|
||||
pub rank: crate::consts::Division,
|
||||
/// Player's summonerId (Encrypted)
|
||||
#[serde(rename = "summonerId")]
|
||||
pub summoner_id: String,
|
||||
|
@ -179,7 +184,7 @@ pub mod league_v4 {
|
|||
#[derive(serde::Serialize, serde::Deserialize)]
|
||||
pub struct LeagueEntry {
|
||||
#[serde(rename = "queueType")]
|
||||
pub queue_type: String,
|
||||
pub queue_type: crate::consts::QueueType,
|
||||
#[serde(rename = "summonerName")]
|
||||
pub summoner_name: String,
|
||||
#[serde(rename = "hotStreak")]
|
||||
|
@ -195,7 +200,7 @@ pub mod league_v4 {
|
|||
#[serde(rename = "losses")]
|
||||
pub losses: i32,
|
||||
#[serde(rename = "rank")]
|
||||
pub rank: String,
|
||||
pub rank: crate::consts::Division,
|
||||
#[serde(rename = "leagueId")]
|
||||
pub league_id: String,
|
||||
#[serde(rename = "inactive")]
|
||||
|
@ -203,7 +208,7 @@ pub mod league_v4 {
|
|||
#[serde(rename = "freshBlood")]
|
||||
pub fresh_blood: bool,
|
||||
#[serde(rename = "tier")]
|
||||
pub tier: String,
|
||||
pub tier: crate::consts::Tier,
|
||||
/// Player's summonerId (Encrypted)
|
||||
#[serde(rename = "summonerId")]
|
||||
pub summoner_id: String,
|
||||
|
@ -299,10 +304,10 @@ pub mod match_v4 {
|
|||
pub struct Match {
|
||||
/// Please refer to the Game Constants documentation.
|
||||
#[serde(rename = "seasonId")]
|
||||
pub season_id: i32,
|
||||
pub season_id: crate::consts::Season,
|
||||
/// Please refer to the Game Constants documentation.
|
||||
#[serde(rename = "queueId")]
|
||||
pub queue_id: i32,
|
||||
pub queue_id: crate::consts::Queue,
|
||||
#[serde(rename = "gameId")]
|
||||
pub game_id: i64,
|
||||
/// Participant identity information.
|
||||
|
@ -316,13 +321,13 @@ pub mod match_v4 {
|
|||
pub platform_id: String,
|
||||
/// Please refer to the Game Constants documentation.
|
||||
#[serde(rename = "gameMode")]
|
||||
pub game_mode: String,
|
||||
pub game_mode: crate::consts::GameMode,
|
||||
/// Please refer to the Game Constants documentation.
|
||||
#[serde(rename = "mapId")]
|
||||
pub map_id: i32,
|
||||
pub map_id: crate::consts::Map,
|
||||
/// Please refer to the Game Constants documentation.
|
||||
#[serde(rename = "gameType")]
|
||||
pub game_type: String,
|
||||
pub game_type: crate::consts::GameType,
|
||||
/// Team information.
|
||||
#[serde(rename = "teams")]
|
||||
pub teams: std::vec::Vec<TeamStats>,
|
||||
|
@ -401,7 +406,7 @@ pub mod match_v4 {
|
|||
pub first_blood: bool,
|
||||
/// 100 for blue side. 200 for red side.
|
||||
#[serde(rename = "teamId")]
|
||||
pub team_id: i32,
|
||||
pub team_id: crate::consts::Team,
|
||||
/// Flag indicating whether or not the team destroyed the first tower.
|
||||
#[serde(rename = "firstTower")]
|
||||
pub first_tower: bool,
|
||||
|
@ -434,7 +439,7 @@ pub mod match_v4 {
|
|||
pub pick_turn: i32,
|
||||
/// Banned championId.
|
||||
#[serde(rename = "championId")]
|
||||
pub champion_id: i32,
|
||||
pub champion_id: crate::consts::Champion,
|
||||
}
|
||||
/// Participant data object. This struct is automatically generated.
|
||||
#[derive(Debug)]
|
||||
|
@ -453,7 +458,7 @@ pub mod match_v4 {
|
|||
pub timeline: ParticipantTimeline,
|
||||
/// 100 for blue side. 200 for red side.
|
||||
#[serde(rename = "teamId")]
|
||||
pub team_id: i32,
|
||||
pub team_id: crate::consts::Team,
|
||||
/// Second Summoner Spell id.
|
||||
#[serde(rename = "spell2Id")]
|
||||
pub spell2_id: i32,
|
||||
|
@ -463,12 +468,12 @@ pub mod match_v4 {
|
|||
/// Highest ranked tier achieved for the previous season in a specific subset of queueIds, if any, otherwise null. Used to display border in game loading screen. Please refer to the Ranked Info documentation.
|
||||
/// (Legal values: CHALLENGER, MASTER, DIAMOND, PLATINUM, GOLD, SILVER, BRONZE, UNRANKED)
|
||||
#[serde(rename = "highestAchievedSeasonTier")]
|
||||
pub highest_achieved_season_tier: String,
|
||||
pub highest_achieved_season_tier: crate::consts::Tier,
|
||||
/// First Summoner Spell id.
|
||||
#[serde(rename = "spell1Id")]
|
||||
pub spell1_id: i32,
|
||||
#[serde(rename = "championId")]
|
||||
pub champion_id: i32,
|
||||
pub champion_id: crate::consts::Champion,
|
||||
}
|
||||
/// ParticipantStats data object. This struct is automatically generated.
|
||||
#[derive(Debug)]
|
||||
|
@ -793,13 +798,13 @@ pub mod match_v4 {
|
|||
#[serde(rename = "gameId")]
|
||||
pub game_id: i64,
|
||||
#[serde(rename = "champion")]
|
||||
pub champion: i32,
|
||||
pub champion: crate::consts::Champion,
|
||||
#[serde(rename = "platformId")]
|
||||
pub platform_id: String,
|
||||
#[serde(rename = "season")]
|
||||
pub season: i32,
|
||||
#[serde(rename = "queue")]
|
||||
pub queue: i32,
|
||||
pub queue: crate::consts::Queue,
|
||||
#[serde(rename = "role")]
|
||||
pub role: String,
|
||||
#[serde(rename = "timestamp")]
|
||||
|
@ -868,7 +873,7 @@ pub mod match_v4 {
|
|||
#[serde(rename = "towerType")]
|
||||
pub tower_type: String,
|
||||
#[serde(rename = "teamId")]
|
||||
pub team_id: i32,
|
||||
pub team_id: crate::consts::Team,
|
||||
#[serde(rename = "ascendedType")]
|
||||
pub ascended_type: String,
|
||||
#[serde(rename = "killerId")]
|
||||
|
@ -931,13 +936,13 @@ pub mod spectator_v4 {
|
|||
pub platform_id: String,
|
||||
/// The game mode
|
||||
#[serde(rename = "gameMode")]
|
||||
pub game_mode: String,
|
||||
pub game_mode: crate::consts::GameMode,
|
||||
/// The ID of the map
|
||||
#[serde(rename = "mapId")]
|
||||
pub map_id: i64,
|
||||
pub map_id: crate::consts::Map,
|
||||
/// The game type
|
||||
#[serde(rename = "gameType")]
|
||||
pub game_type: String,
|
||||
pub game_type: crate::consts::GameType,
|
||||
/// Banned champion information
|
||||
#[serde(rename = "bannedChampions")]
|
||||
pub banned_champions: std::vec::Vec<BannedChampion>,
|
||||
|
@ -952,7 +957,7 @@ pub mod spectator_v4 {
|
|||
pub game_length: i64,
|
||||
/// The queue type (queue types are documented on the Game Constants page)
|
||||
#[serde(rename = "gameQueueConfigId")]
|
||||
pub game_queue_config_id: i64,
|
||||
pub game_queue_config_id: crate::consts::Queue,
|
||||
}
|
||||
/// BannedChampion data object. This struct is automatically generated.
|
||||
#[derive(Debug)]
|
||||
|
@ -963,10 +968,10 @@ pub mod spectator_v4 {
|
|||
pub pick_turn: i32,
|
||||
/// The ID of the banned champion
|
||||
#[serde(rename = "championId")]
|
||||
pub champion_id: i64,
|
||||
pub champion_id: crate::consts::Champion,
|
||||
/// The ID of the team that banned the champion
|
||||
#[serde(rename = "teamId")]
|
||||
pub team_id: i64,
|
||||
pub team_id: crate::consts::Team,
|
||||
}
|
||||
/// Observer data object. This struct is automatically generated.
|
||||
#[derive(Debug)]
|
||||
|
@ -985,7 +990,7 @@ pub mod spectator_v4 {
|
|||
pub profile_icon_id: i64,
|
||||
/// The ID of the champion played by this participant
|
||||
#[serde(rename = "championId")]
|
||||
pub champion_id: i64,
|
||||
pub champion_id: crate::consts::Champion,
|
||||
/// The summoner name of this participant
|
||||
#[serde(rename = "summonerName")]
|
||||
pub summoner_name: String,
|
||||
|
@ -1003,7 +1008,7 @@ pub mod spectator_v4 {
|
|||
pub spell2_id: i64,
|
||||
/// The team ID of this participant, indicating the participant's team
|
||||
#[serde(rename = "teamId")]
|
||||
pub team_id: i64,
|
||||
pub team_id: crate::consts::Team,
|
||||
/// The ID of the first summoner spell used by this participant
|
||||
#[serde(rename = "spell1Id")]
|
||||
pub spell1_id: i64,
|
||||
|
@ -1063,14 +1068,14 @@ pub mod spectator_v4 {
|
|||
/// The game mode
|
||||
/// (Legal values: CLASSIC, ODIN, ARAM, TUTORIAL, ONEFORALL, ASCENSION, FIRSTBLOOD, KINGPORO)
|
||||
#[serde(rename = "gameMode")]
|
||||
pub game_mode: String,
|
||||
pub game_mode: crate::consts::GameMode,
|
||||
/// The ID of the map
|
||||
#[serde(rename = "mapId")]
|
||||
pub map_id: i64,
|
||||
pub map_id: crate::consts::Map,
|
||||
/// The game type
|
||||
/// (Legal values: CUSTOM_GAME, MATCHED_GAME, TUTORIAL_GAME)
|
||||
#[serde(rename = "gameType")]
|
||||
pub game_type: String,
|
||||
pub game_type: crate::consts::GameType,
|
||||
/// Banned champion information
|
||||
#[serde(rename = "bannedChampions")]
|
||||
pub banned_champions: std::vec::Vec<BannedChampion>,
|
||||
|
@ -1085,7 +1090,7 @@ pub mod spectator_v4 {
|
|||
pub game_length: i64,
|
||||
/// The queue type (queue types are documented on the Game Constants page)
|
||||
#[serde(rename = "gameQueueConfigId")]
|
||||
pub game_queue_config_id: i64,
|
||||
pub game_queue_config_id: crate::consts::Queue,
|
||||
}
|
||||
/// Participant data object. This struct is automatically generated.
|
||||
#[derive(Debug)]
|
||||
|
@ -1096,7 +1101,7 @@ pub mod spectator_v4 {
|
|||
pub profile_icon_id: i64,
|
||||
/// The ID of the champion played by this participant
|
||||
#[serde(rename = "championId")]
|
||||
pub champion_id: i64,
|
||||
pub champion_id: crate::consts::Champion,
|
||||
/// The summoner name of this participant
|
||||
#[serde(rename = "summonerName")]
|
||||
pub summoner_name: String,
|
||||
|
@ -1108,7 +1113,7 @@ pub mod spectator_v4 {
|
|||
pub spell2_id: i64,
|
||||
/// The team ID of this participant, indicating the participant's team
|
||||
#[serde(rename = "teamId")]
|
||||
pub team_id: i64,
|
||||
pub team_id: crate::consts::Team,
|
||||
/// The ID of the first summoner spell used by this participant
|
||||
#[serde(rename = "spell1Id")]
|
||||
pub spell1_id: i64,
|
||||
|
|
|
@ -14,15 +14,21 @@
|
|||
}}{{= require('./dotUtils.js').preamble() }}
|
||||
|
||||
use std::fmt;
|
||||
use num_derive;
|
||||
use num_derive::{ FromPrimitive, ToPrimitive };
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legend's champions.
|
||||
///
|
||||
/// The documentation of each variant specifies:<br>
|
||||
/// NAME (`IDENTIFIER`, ID).
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(num_derive::FromPrimitive, num_derive::ToPrimitive)]
|
||||
#[derive(FromPrimitive, ToPrimitive)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(i16)]
|
||||
pub enum Champion {
|
||||
/// A champion that doesn't exist. Used in TeamBans when no ban occured.
|
||||
None = -1,
|
||||
|
||||
{{
|
||||
for (let { id, alias, name } of champions) {
|
||||
const comment = `${name.padEnd(14)} (\`${alias}\`, ${id}).`.padEnd(36);
|
||||
|
@ -37,6 +43,7 @@ pub enum Champion {
|
|||
impl Champion {
|
||||
pub fn name(self) -> &'static str {
|
||||
match self {
|
||||
Self::None => "None",
|
||||
{{
|
||||
for (let { id, name } of champions) {
|
||||
}}
|
||||
|
@ -49,6 +56,7 @@ impl Champion {
|
|||
|
||||
pub fn identifier(self) -> &'static str {
|
||||
match self {
|
||||
Self::None => "None",
|
||||
{{
|
||||
for (let { name, alias } of champions) {
|
||||
}}
|
||||
|
|
|
@ -22,3 +22,5 @@ pub enum GameMode {
|
|||
}
|
||||
}}
|
||||
}
|
||||
|
||||
serde_string!(GameMode);
|
||||
|
|
|
@ -21,3 +21,5 @@ pub enum GameType {
|
|||
}
|
||||
}}
|
||||
}
|
||||
|
||||
serde_string!(GameType);
|
||||
|
|
|
@ -5,9 +5,12 @@
|
|||
dotUtils.changeCase.pascalCase(mapName.replace(/[ ']+/, '')));
|
||||
}}{{= dotUtils.preamble() }}
|
||||
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legends maps.
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(u8)]
|
||||
pub enum Map {
|
||||
{{
|
||||
|
|
|
@ -3,9 +3,12 @@
|
|||
const seasons = require('./.seasons.json');
|
||||
}}{{= dotUtils.preamble() }}
|
||||
|
||||
use serde_repr::{ Serialize_repr, Deserialize_repr };
|
||||
|
||||
/// League of Legends matchmaking seasons.
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
|
||||
#[derive(Serialize_repr, Deserialize_repr)]
|
||||
#[repr(u8)]
|
||||
pub enum Season {
|
||||
{{
|
||||
|
|
|
@ -14,8 +14,14 @@ Array.prototype.groupBy = function(lambda) {
|
|||
}
|
||||
|
||||
function preamble() {
|
||||
return `// This file is automatically generated.
|
||||
// Do not directly edit.`;
|
||||
return `\
|
||||
///////////////////////////////////////////////
|
||||
// //
|
||||
// ! //
|
||||
// This file is automatically generated! //
|
||||
// Do not directly edit! //
|
||||
// //
|
||||
///////////////////////////////////////////////`;
|
||||
}
|
||||
|
||||
function capitalize(input) {
|
||||
|
@ -41,12 +47,6 @@ function normalizePropName(propName, schemaName, value) {
|
|||
if ('type' === out)
|
||||
return 'r#' + out;
|
||||
return out;
|
||||
// return propName;
|
||||
// var tokens = propName.split('_');
|
||||
// var name = tokens.map(capitalize).join('');
|
||||
// if (name === schemaName)
|
||||
// name += stringifyType(value);
|
||||
// return name;
|
||||
}
|
||||
|
||||
function stringifyType(prop, endpoint = null, optional = false, fullpath = true, owned = true) {
|
||||
|
@ -54,6 +54,10 @@ function stringifyType(prop, endpoint = null, optional = false, fullpath = true,
|
|||
prop = prop.anyOf[0];
|
||||
}
|
||||
|
||||
let enumType = prop['x-enum'];
|
||||
if (enumType && 'locale' !== enumType)
|
||||
return 'crate::consts::' + changeCase.pascalCase(enumType);
|
||||
|
||||
let refType = prop['$ref'];
|
||||
if (refType) {
|
||||
return (!endpoint ? '' : changeCase.snakeCase(endpoint) + '::') +
|
||||
|
|
Loading…
Reference in a new issue