diff --git a/Cargo.toml b/Cargo.toml index 557aa2d..f2d6333 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "osm4routing" edition = "2021" -version = "0.7.2" +version = "0.8.0" authors = ["Tristram Gräbener "] description = "Convert OpenStreetMap data into routing friendly CSV" homepage = "https://github.com/Tristramg/osm4routing2" @@ -10,6 +10,7 @@ license = "MIT" [dependencies] osmpbfreader = "0.17.0" +ahash = "0.8" csv = "1.3.0" clap = { version = "4.5", features = ["derive"] } serde = "1.0" diff --git a/src/osm4routing/models.rs b/src/osm4routing/models.rs index fb23e7c..159f502 100644 --- a/src/osm4routing/models.rs +++ b/src/osm4routing/models.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use ahash::HashMap; use std::hash::{Hash, Hasher}; use super::categorize::EdgeProperties; @@ -56,7 +56,7 @@ pub struct Edge { pub geometry: Vec, pub properties: EdgeProperties, pub nodes: Vec, - pub tags: std::collections::HashMap, + pub tags: HashMap, } impl Hash for Edge { diff --git a/src/osm4routing/reader.rs b/src/osm4routing/reader.rs index e15ef39..357e63b 100644 --- a/src/osm4routing/reader.rs +++ b/src/osm4routing/reader.rs @@ -1,7 +1,7 @@ use super::categorize::*; use super::models::*; +use ahash::{HashMap, HashMapExt, HashSet, HashSetExt}; use osmpbfreader::objects::{NodeId, WayId}; -use std::collections::{HashMap, HashSet}; use std::path::Path; // Way as represented in OpenStreetMap @@ -160,7 +160,7 @@ impl Reader { } } - for edge in edges.into_iter() { + for edge in edges { if !already_merged.contains(&edge.id) { result.push(edge); }