forked from mirror/Riven
1
0
Fork 0

Convert Map from enum into newtype_enum

users/mingwei/unknown-variant-messy
Mingwei Samuel 2021-06-30 19:40:48 -07:00
parent 88124ecb3a
commit 2d80f97170
3 changed files with 62 additions and 68 deletions

View File

@ -64,7 +64,7 @@ macro_rules! newtype_enum {
} => { } => {
$( #[$attr] )* $( #[$attr] )*
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
#[derive(PartialEq, Eq, PartialOrd, Ord)] #[derive(Hash, PartialEq, Eq, PartialOrd, Ord)]
#[repr(transparent)] #[repr(transparent)]
$v struct $name($v $repr); $v struct $name($v $repr);
impl $name { impl $name {

View File

@ -6,17 +6,13 @@
// // // //
/////////////////////////////////////////////// ///////////////////////////////////////////////
use serde_repr::{ Serialize_repr, Deserialize_repr }; use serde::{ Serialize, Deserialize };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends maps. newtype_enum! {
#[non_exhaustive] /// A League of Legends map.
#[derive(Debug, Copy, Clone)] #[derive(Serialize, Deserialize)]
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[serde(transparent)]
#[derive(Serialize_repr, Deserialize_repr)] pub newtype_enum Map(u8) {
#[derive(IntoPrimitive, TryFromPrimitive)]
#[repr(u8)]
pub enum Map {
/// Summoner's Rift /// Summoner's Rift
/// Original Summer variant /// Original Summer variant
SUMMONERS_RIFT_ORIGINAL_SUMMER_VARIANT = 1, SUMMONERS_RIFT_ORIGINAL_SUMMER_VARIANT = 1,
@ -62,4 +58,5 @@ pub enum Map {
/// Convergence /// Convergence
/// Teamfight Tactics map /// Teamfight Tactics map
CONVERGENCE = 22, CONVERGENCE = 22,
}
} }

View File

@ -3,17 +3,13 @@
const maps = require('./.maps.json'); const maps = require('./.maps.json');
}}{{= dotUtils.preamble() }} }}{{= dotUtils.preamble() }}
use serde_repr::{ Serialize_repr, Deserialize_repr }; use serde::{ Serialize, Deserialize };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends maps. newtype_enum! {
#[non_exhaustive] /// A League of Legends map.
#[derive(Debug, Copy, Clone)] #[derive(Serialize, Deserialize)]
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[serde(transparent)]
#[derive(Serialize_repr, Deserialize_repr)] pub newtype_enum Map(u8) {
#[derive(IntoPrimitive, TryFromPrimitive)]
#[repr(u8)]
pub enum Map {
{{ {{
for (const e of maps) { for (const e of maps) {
const desc = e['x-desc'] ? e['x-desc'].split('\n') : []; const desc = e['x-desc'] ? e['x-desc'].split('\n') : [];
@ -25,4 +21,5 @@ pub enum Map {
{{ {{
} }
}} }}
}
} }