diff --git a/Cargo.toml b/Cargo.toml index e85ee30..3eefebc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,8 +12,7 @@ include = [ "src/**/*" ] [dependencies] log = "0.4" -num-traits = "0.2" -num-derive = "0.3" +num_enum = "0.4" parking_lot = { version = "0.9", features = [ "nightly" ] } reqwest = { version = "0.10.0-alpha.1", features = [ "gzip", "json" ] } scan_fmt = "0.2" diff --git a/src/consts/champion.rs b/src/consts/champion.rs index 1b397c5..81bc755 100644 --- a/src/consts/champion.rs +++ b/src/consts/champion.rs @@ -7,7 +7,7 @@ /////////////////////////////////////////////// use std::fmt; -use num_derive::{ FromPrimitive, ToPrimitive }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; use serde_repr::{ Serialize_repr, Deserialize_repr }; /// League of Legend's champions. @@ -15,7 +15,7 @@ use serde_repr::{ Serialize_repr, Deserialize_repr }; /// The documentation of each variant specifies:
/// NAME (`IDENTIFIER`, ID). #[derive(Debug, Copy, Clone)] -#[derive(FromPrimitive, ToPrimitive)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[derive(Serialize_repr, Deserialize_repr)] #[repr(i16)] pub enum Champion { diff --git a/src/consts/division.rs b/src/consts/division.rs index 4a33634..941b03d 100644 --- a/src/consts/division.rs +++ b/src/consts/division.rs @@ -2,11 +2,13 @@ use strum_macros::{ EnumString, Display, AsRefStr }; use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[derive(EnumString, Display, AsRefStr)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Division { I = 1, diff --git a/src/consts/map.rs b/src/consts/map.rs index cb46e4f..6e8be0f 100644 --- a/src/consts/map.rs +++ b/src/consts/map.rs @@ -7,11 +7,13 @@ /////////////////////////////////////////////// use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends maps. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Map { diff --git a/src/consts/queue.rs b/src/consts/queue.rs index 1202b7e..a7da507 100644 --- a/src/consts/queue.rs +++ b/src/consts/queue.rs @@ -8,11 +8,13 @@ #![allow(deprecated)] use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends matchmaking queue. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u16)] pub enum Queue { diff --git a/src/consts/season.rs b/src/consts/season.rs index ef8f61d..82e6778 100644 --- a/src/consts/season.rs +++ b/src/consts/season.rs @@ -7,11 +7,13 @@ /////////////////////////////////////////////// use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends matchmaking seasons. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Season { Preseason3 = 0, diff --git a/src/consts/team.rs b/src/consts/team.rs index 73dcc0d..6fea91d 100644 --- a/src/consts/team.rs +++ b/src/consts/team.rs @@ -1,9 +1,11 @@ use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends team. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, Ord, PartialOrd)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Team { /// Blue team (bottom left on Summoner's Rift). diff --git a/src/consts/tier.rs b/src/consts/tier.rs index c6b67ca..446c24f 100644 --- a/src/consts/tier.rs +++ b/src/consts/tier.rs @@ -1,10 +1,12 @@ #![allow(deprecated)] use strum_macros::{ EnumString, Display, AsRefStr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[derive(EnumString, Display, AsRefStr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Tier { #[strum(to_string="IRON")] Iron = 40, @@ -13,9 +15,9 @@ pub enum Tier { #[strum(to_string="GOLD")] Gold = 100, #[strum(to_string="PLATINUM")] Platinum = 120, #[strum(to_string="DIAMOND")] Diamond = 140, - #[strum(to_string="MASTER")] Master = 200, - #[strum(to_string="GRANDMASTER")] Grandmaster = 220, - #[strum(to_string="CHALLENGER")] Challenger = 240, + #[strum(to_string="MASTER")] Master = 180, + #[strum(to_string="GRANDMASTER")] Grandmaster = 200, + #[strum(to_string="CHALLENGER")] Challenger = 220, } serde_string!(Tier); diff --git a/srcgen/consts/champion.rs.dt b/srcgen/consts/champion.rs.dt index dd69e5b..452076d 100644 --- a/srcgen/consts/champion.rs.dt +++ b/srcgen/consts/champion.rs.dt @@ -14,7 +14,7 @@ }}{{= require('./dotUtils.js').preamble() }} use std::fmt; -use num_derive::{ FromPrimitive, ToPrimitive }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; use serde_repr::{ Serialize_repr, Deserialize_repr }; /// League of Legend's champions. @@ -22,7 +22,7 @@ use serde_repr::{ Serialize_repr, Deserialize_repr }; /// The documentation of each variant specifies:
/// NAME (`IDENTIFIER`, ID). #[derive(Debug, Copy, Clone)] -#[derive(FromPrimitive, ToPrimitive)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[derive(Serialize_repr, Deserialize_repr)] #[repr(i16)] pub enum Champion { diff --git a/srcgen/consts/map.rs.dt b/srcgen/consts/map.rs.dt index 271087d..2f405e4 100644 --- a/srcgen/consts/map.rs.dt +++ b/srcgen/consts/map.rs.dt @@ -6,11 +6,13 @@ }}{{= dotUtils.preamble() }} use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends maps. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Map { {{ diff --git a/srcgen/consts/queue.rs.dt b/srcgen/consts/queue.rs.dt index 5ba0578..c6e9cb0 100644 --- a/srcgen/consts/queue.rs.dt +++ b/srcgen/consts/queue.rs.dt @@ -11,11 +11,13 @@ #![allow(deprecated)] use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends matchmaking queue. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u16)] pub enum Queue { {{ diff --git a/srcgen/consts/season.rs.dt b/srcgen/consts/season.rs.dt index 42bd04e..5ebef3e 100644 --- a/srcgen/consts/season.rs.dt +++ b/srcgen/consts/season.rs.dt @@ -4,11 +4,13 @@ }}{{= dotUtils.preamble() }} use serde_repr::{ Serialize_repr, Deserialize_repr }; +use num_enum::{ IntoPrimitive, TryFromPrimitive }; /// League of Legends matchmaking seasons. #[derive(Debug, Copy, Clone)] #[derive(Eq, PartialEq, Hash, PartialOrd, Ord)] #[derive(Serialize_repr, Deserialize_repr)] +#[derive(IntoPrimitive, TryFromPrimitive)] #[repr(u8)] pub enum Season { {{