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 {
{{