From 1e1ee5031f9854281658c0b22d5c1b058dc6ea9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=A4rtens?= Date: Sat, 24 Sep 2022 13:02:02 +0200 Subject: [PATCH] remove enum_iterator with strum, fixes #1723 --- Cargo.lock | 1 - common/Cargo.toml | 1 - common/src/terrain/sprite.rs | 8 +++++--- voxygen/src/scene/terrain.rs | 5 +++-- world/Cargo.toml | 1 + world/src/all.rs | 4 ++-- world/src/sim/mod.rs | 5 +++-- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0dce214a4c..4a0768ab99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6699,7 +6699,6 @@ dependencies = [ "crossbeam-utils 0.8.11", "csv", "dot_vox", - "enum-iterator 1.1.3", "fxhash", "hashbrown 0.12.3", "indexmap", diff --git a/common/Cargo.toml b/common/Cargo.toml index e563ba27ed..f2e9dbf1ab 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -26,7 +26,6 @@ common-base = { package = "veloren-common-base", path = "base" } serde = { version = "1.0.110", features = ["derive", "rc"] } # Util -enum-iterator = "1.1.0" vek = { version = "0.15.8", features = ["serde"] } chrono = "0.4.22" chrono-tz = "0.6" diff --git a/common/src/terrain/sprite.rs b/common/src/terrain/sprite.rs index 881f3a0661..46e79868a2 100644 --- a/common/src/terrain/sprite.rs +++ b/common/src/terrain/sprite.rs @@ -1,5 +1,5 @@ use crate::{comp::tool::ToolKind, lottery::LootSpec, make_case_elim}; -use enum_iterator::Sequence; +use strum::EnumIter; use hashbrown::HashMap; use lazy_static::lazy_static; use num_derive::FromPrimitive; @@ -17,7 +17,7 @@ make_case_elim!( PartialEq, Serialize, Deserialize, - Sequence, + EnumIter, FromPrimitive, )] #[repr(u8)] @@ -557,8 +557,10 @@ impl fmt::Display for SpriteKind { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{:?}", self) } } +use strum::IntoEnumIterator; + lazy_static! { - pub static ref SPRITE_KINDS: HashMap = enum_iterator::all::() + pub static ref SPRITE_KINDS: HashMap = SpriteKind::iter() .map(|sk| (sk.to_string(), sk)) .collect(); } diff --git a/voxygen/src/scene/terrain.rs b/voxygen/src/scene/terrain.rs index 58859f7066..24795a57be 100644 --- a/voxygen/src/scene/terrain.rs +++ b/voxygen/src/scene/terrain.rs @@ -38,6 +38,7 @@ use std::sync::{ atomic::{AtomicU64, Ordering}, Arc, }; +use strum::IntoEnumIterator; use tracing::warn; use treeculler::{BVol, Frustum, AABB}; use vek::*; @@ -195,7 +196,7 @@ impl TryFrom>>> for SpriteSpec { mut map: HashMap>>, ) -> Result { let mut array = [(); 256].map(|()| None); - let sprites_missing = enum_iterator::all::() + let sprites_missing = SpriteKind::iter() .filter(|kind| match map.remove(kind) { Some(config) => { array[*kind as usize] = config; @@ -453,7 +454,7 @@ impl SpriteRenderContext { ); let mut sprite_mesh = Mesh::new(); // NOTE: Tracks the start vertex of the next model to be meshed. - let sprite_data: HashMap<(SpriteKind, usize), _> = enum_iterator::all::() + let sprite_data: HashMap<(SpriteKind, usize), _> = SpriteKind::iter() .filter_map(|kind| Some((kind, sprite_config.get(kind)?))) .flat_map(|(kind, sprite_config)| { sprite_config.variations.iter().enumerate().map( diff --git a/world/Cargo.toml b/world/Cargo.toml index 7868245d9d..ad4d12b6ce 100644 --- a/world/Cargo.toml +++ b/world/Cargo.toml @@ -37,6 +37,7 @@ serde = { version = "1.0.110", features = ["derive"] } ron = { version = "0.8", default-features = false } # inline_tweak = "1.0.2" kiddo = "0.2" +strum = "0.24.0" # compression benchmarks lz-fear = { version = "0.1.1", optional = true } diff --git a/world/src/all.rs b/world/src/all.rs index d60aa0ccf8..fc6d01f35e 100644 --- a/world/src/all.rs +++ b/world/src/all.rs @@ -1,9 +1,9 @@ use crate::util::math::close; -use enum_iterator::Sequence; use std::ops::Range; +use strum::EnumIter; use vek::Vec2; -#[derive(Copy, Clone, Debug, Sequence)] +#[derive(Copy, Clone, Debug, EnumIter)] pub enum ForestKind { Palm, Acacia, diff --git a/world/src/sim/mod.rs b/world/src/sim/mod.rs index 33c69d5f88..29c24ddfc8 100644 --- a/world/src/sim/mod.rs +++ b/world/src/sim/mod.rs @@ -69,6 +69,7 @@ use std::{ path::PathBuf, sync::Arc, }; +use strum::IntoEnumIterator; use tracing::{debug, warn}; use vek::*; @@ -2238,7 +2239,7 @@ impl WorldSim { }; let env = chunk.get_environment(); Lottery::from( - enum_iterator::all::() + ForestKind::iter() .enumerate() .map(|(i, fk)| { const CLUSTER_SIZE: f64 = 48.0; @@ -2551,7 +2552,7 @@ impl SimChunk { }, }; - enum_iterator::all::() + ForestKind::iter() .max_by_key(|fk| (fk.proclivity(&env) * 10000.0) as u32) .unwrap() // Can't fail },