From 4b23f9afed1e9760c3eb94d192d839e6d3bf25c1 Mon Sep 17 00:00:00 2001 From: Mingwei Samuel Date: Wed, 30 Jun 2021 19:46:26 -0700 Subject: [PATCH] Convert Season from enum into newtype_enum --- src/consts/season.rs | 26 +++++++++++++++++++++++++- srcgen/consts/season.rs.dt | 21 ++++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/consts/season.rs b/src/consts/season.rs index 2e2bd6c..d31a0ce 100644 --- a/src/consts/season.rs +++ b/src/consts/season.rs @@ -6,6 +6,30 @@ // // /////////////////////////////////////////////// +newtype_enum! { + /// A League of Legends season for competitive matchmaking. + #[derive(Serialize, Deserialize)] + #[serde(transparent)] + pub newtype_enum Season { + PRESEASON_3 = 0, + SEASON_3 = 1, + PRESEASON_2014 = 2, + SEASON_2014 = 3, + PRESEASON_2015 = 4, + 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 }; @@ -16,7 +40,7 @@ use num_enum::{ IntoPrimitive, TryFromPrimitive }; #[derive(Serialize_repr, Deserialize_repr)] #[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] -pub enum Season { +pub enum Season2 { PRESEASON_3 = 0, SEASON_3 = 1, PRESEASON_2014 = 2, diff --git a/srcgen/consts/season.rs.dt b/srcgen/consts/season.rs.dt index bb23765..4f63c54 100644 --- a/srcgen/consts/season.rs.dt +++ b/srcgen/consts/season.rs.dt @@ -3,6 +3,25 @@ const seasons = require('./.seasons.json'); }}{{= dotUtils.preamble() }} +newtype_enum! { + /// A League of Legends season for competitive matchmaking. + #[derive(Serialize, Deserialize)] + #[serde(transparent)] + pub newtype_enum Season { +{{ + for (const e of seasons) { + const desc = e['x-desc'] ? e['x-desc'].split('\n') : []; +}} +{{~ desc :line }} + /// {{= line }} +{{~}} + {{= e['x-name'] }} = {{= e['x-value'] }}, +{{ + } +}} + } +} + use serde_repr::{ Serialize_repr, Deserialize_repr }; use num_enum::{ IntoPrimitive, TryFromPrimitive }; @@ -13,7 +32,7 @@ use num_enum::{ IntoPrimitive, TryFromPrimitive }; #[derive(Serialize_repr, Deserialize_repr)] #[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] -pub enum Season { +pub enum Season2 { {{ for (const e of seasons) { const desc = e['x-desc'] ? e['x-desc'].split('\n') : [];