forked from mirror/Riven
1
0
Fork 0

Convert Season from enum into newtype_enum

users/mingwei/unknown-variant-messy
Mingwei Samuel 2021-06-30 19:46:26 -07:00
parent 35f826b198
commit 4b23f9afed
2 changed files with 45 additions and 2 deletions

View File

@ -6,17 +6,41 @@
// // // //
/////////////////////////////////////////////// ///////////////////////////////////////////////
use serde_repr::{ Serialize_repr, Deserialize_repr }; newtype_enum! {
use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// A League of Legends season for competitive matchmaking.
#[derive(Serialize, Deserialize)]
/// League of Legends matchmaking seasons. #[serde(transparent)]
#[non_exhaustive] pub newtype_enum Season {
#[derive(Debug, Copy, Clone)] PRESEASON_3 = 0,
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] SEASON_3 = 1,
#[derive(Serialize_repr, Deserialize_repr)] PRESEASON_2014 = 2,
#[derive(IntoPrimitive, TryFromPrimitive)] SEASON_2014 = 3,
#[repr(u8)] PRESEASON_2015 = 4,
pub enum Season { SEASON_2015 = 5,
PRESEASON_2016 = 6,
SEASON_2016 = 7,
PRESEASON_2017 = 8,
SEASON_2017 = 9,
PRESEASON_2018 = 10,
SEASON_2018 = 11,
PRESEASON_2019 = 12,
SEASON_2019 = 13,
PRESEASON_2020 = 14,
SEASON_2020 = 15,
}
}
use serde_repr::{ Serialize_repr, Deserialize_repr };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends matchmaking seasons.
#[non_exhaustive]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
#[derive(Serialize_repr, Deserialize_repr)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[repr(u8)]
pub enum Season2 {
PRESEASON_3 = 0, PRESEASON_3 = 0,
SEASON_3 = 1, SEASON_3 = 1,
PRESEASON_2014 = 2, PRESEASON_2014 = 2,

View File

@ -3,17 +3,36 @@
const seasons = require('./.seasons.json'); const seasons = require('./.seasons.json');
}}{{= dotUtils.preamble() }} }}{{= dotUtils.preamble() }}
use serde_repr::{ Serialize_repr, Deserialize_repr }; newtype_enum! {
use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// A League of Legends season for competitive matchmaking.
#[derive(Serialize, Deserialize)]
/// League of Legends matchmaking seasons. #[serde(transparent)]
#[non_exhaustive] pub newtype_enum Season {
#[derive(Debug, Copy, Clone)] {{
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] for (const e of seasons) {
#[derive(Serialize_repr, Deserialize_repr)] const desc = e['x-desc'] ? e['x-desc'].split('\n') : [];
#[derive(IntoPrimitive, TryFromPrimitive)] }}
#[repr(u8)] {{~ desc :line }}
pub enum Season { /// {{= line }}
{{~}}
{{= e['x-name'] }} = {{= e['x-value'] }},
{{
}
}}
}
}
use serde_repr::{ Serialize_repr, Deserialize_repr };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends matchmaking seasons.
#[non_exhaustive]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
#[derive(Serialize_repr, Deserialize_repr)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[repr(u8)]
pub enum Season2 {
{{ {{
for (const e of seasons) { for (const e of seasons) {
const desc = e['x-desc'] ? e['x-desc'].split('\n') : []; const desc = e['x-desc'] ? e['x-desc'].split('\n') : [];