summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2023-11-11 03:54:18 +0100
committerLibravatar GitHub <noreply@github.com>2023-11-11 03:54:18 +0100
commit53f5f935e493cce3c041f8d0a635ab4c24a8f7e0 (patch)
tree663740eb773a2274777873647e634932399f1756
parent751ea77c29f6eb3d00f45f0a04c833a1d03a425c (diff)
parent107e842071f1300df5e0bfcb26ee0a99024e51d8 (diff)
downloadiced-53f5f935e493cce3c041f8d0a635ab4c24a8f7e0.tar.gz
iced-53f5f935e493cce3c041f8d0a635ab4c24a8f7e0.tar.bz2
iced-53f5f935e493cce3c041f8d0a635ab4c24a8f7e0.zip
Merge pull request #2080 from dtzxporter/xxhash-3-speed
Migrate twox-hash -> xxhash-rust. Switch to Xxh3 for better performance.
Diffstat (limited to '')
-rw-r--r--Cargo.toml2
-rw-r--r--core/Cargo.toml2
-rw-r--r--core/src/hasher.rs5
-rw-r--r--graphics/Cargo.toml6
-rw-r--r--graphics/src/text/cache.rs6
-rw-r--r--tiny_skia/Cargo.toml6
6 files changed, 8 insertions, 19 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 1a286b9b..ac34a4ac 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -150,7 +150,7 @@ thiserror = "1.0"
tiny-skia = "0.10"
tokio = "1.0"
tracing = "0.1"
-twox-hash = { version = "1.0", default-features = false }
+xxhash-rust = { version = "0.8", features = ["xxh3"] }
unicode-segmentation = "1.0"
wasm-bindgen-futures = "0.4"
wasm-timer = "0.2"
diff --git a/core/Cargo.toml b/core/Cargo.toml
index 7acb7511..82946847 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -14,7 +14,7 @@ keywords.workspace = true
bitflags.workspace = true
log.workspace = true
thiserror.workspace = true
-twox-hash.workspace = true
+xxhash-rust.workspace = true
num-traits.workspace = true
palette.workspace = true
diff --git a/core/src/hasher.rs b/core/src/hasher.rs
index 9d8f75b3..a13d78af 100644
--- a/core/src/hasher.rs
+++ b/core/src/hasher.rs
@@ -1,6 +1,7 @@
/// The hasher used to compare layouts.
-#[derive(Debug, Default)]
-pub struct Hasher(twox_hash::XxHash64);
+#[allow(missing_debug_implementations)] // Doesn't really make sense to have debug on the hasher state anyways.
+#[derive(Default)]
+pub struct Hasher(xxhash_rust::xxh3::Xxh3);
impl core::hash::Hasher for Hasher {
fn write(&mut self, bytes: &[u8]) {
diff --git a/graphics/Cargo.toml b/graphics/Cargo.toml
index 3165810b..a7aea352 100644
--- a/graphics/Cargo.toml
+++ b/graphics/Cargo.toml
@@ -33,8 +33,8 @@ once_cell.workspace = true
raw-window-handle.workspace = true
rustc-hash.workspace = true
thiserror.workspace = true
-twox-hash.workspace = true
unicode-segmentation.workspace = true
+xxhash-rust.workspace = true
image.workspace = true
image.optional = true
@@ -44,7 +44,3 @@ kamadak-exif.optional = true
lyon_path.workspace = true
lyon_path.optional = true
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
-twox-hash.workspace = true
-twox-hash.features = ["std"]
diff --git a/graphics/src/text/cache.rs b/graphics/src/text/cache.rs
index b3293dd4..7fb33567 100644
--- a/graphics/src/text/cache.rs
+++ b/graphics/src/text/cache.rs
@@ -16,11 +16,7 @@ pub struct Cache {
hasher: HashBuilder,
}
-#[cfg(not(target_arch = "wasm32"))]
-type HashBuilder = twox_hash::RandomXxHashBuilder64;
-
-#[cfg(target_arch = "wasm32")]
-type HashBuilder = std::hash::BuildHasherDefault<twox_hash::XxHash64>;
+type HashBuilder = xxhash_rust::xxh3::Xxh3Builder;
impl Cache {
/// Creates a new empty [`Cache`].
diff --git a/tiny_skia/Cargo.toml b/tiny_skia/Cargo.toml
index 15a6928a..df4c6143 100644
--- a/tiny_skia/Cargo.toml
+++ b/tiny_skia/Cargo.toml
@@ -26,11 +26,7 @@ raw-window-handle.workspace = true
rustc-hash.workspace = true
softbuffer.workspace = true
tiny-skia.workspace = true
-twox-hash.workspace = true
+xxhash-rust.workspace = true
resvg.workspace = true
resvg.optional = true
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
-twox-hash.workspace = true
-twox-hash.features = ["std"]