diff --git a/.rustfmt.toml b/.rustfmt.toml index 4c6e3cd..fd825f4 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1,3 +1,3 @@ imports_granularity = "Crate" imports_layout = "HorizontalVertical" -edition = "2021" \ No newline at end of file +edition = "2024" diff --git a/Cargo.lock b/Cargo.lock index f5e1ee0..75df36e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" @@ -212,9 +212,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" dependencies = [ "foldhash", ] diff --git a/Cargo.toml b/Cargo.toml index 371a8e6..fe7463f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,11 +11,11 @@ description = """Efficient string interner with minimal memory footprint and fast access to the underlying strings. """ categories = ["data-structures"] -edition = "2021" -rust-version = "1.65.0" +edition = "2024" +rust-version = "1.85.0" [dependencies] -hashbrown = { version = "0.16.0", default-features = false, features = ["default-hasher", "raw-entry"] } +hashbrown = { version = "0.17.0", default-features = false, features = ["default-hasher", "raw-entry"] } serde = { version = "1.0", default-features = false, features = ["alloc"], optional = true } [dev-dependencies] diff --git a/benches/bench.rs b/benches/bench.rs index 7ef13ba..96df357 100644 --- a/benches/bench.rs +++ b/benches/bench.rs @@ -1,22 +1,22 @@ mod setup; use self::setup::{ - generate_test_strings, + BENCH_LEN_STRINGS, + BENCH_STRING_LEN, BackendBenchmark, BenchBucket, BenchBuffer, BenchString, - BENCH_LEN_STRINGS, - BENCH_STRING_LEN, + generate_test_strings, }; use criterion::{ - criterion_group, - criterion_main, - measurement::WallTime, BatchSize, BenchmarkGroup, Criterion, Throughput, + criterion_group, + criterion_main, + measurement::WallTime, }; use std::hint::black_box; use string_interner::backend::Backend; diff --git a/benches/setup.rs b/benches/setup.rs index a412ffc..424eaba 100644 --- a/benches/setup.rs +++ b/benches/setup.rs @@ -1,7 +1,7 @@ use string_interner::{ - backend::{Backend, BucketBackend, BufferBackend, StringBackend}, DefaultSymbol, StringInterner, + backend::{Backend, BucketBackend, BufferBackend, StringBackend}, }; /// Alphabet containing all characters that may be put into a benchmark string. diff --git a/src/backend/bucket/mod.rs b/src/backend/bucket/mod.rs index 5e5ad48..7f54175 100644 --- a/src/backend/bucket/mod.rs +++ b/src/backend/bucket/mod.rs @@ -5,7 +5,7 @@ mod interned_str; use self::{fixed_str::FixedString, interned_str::InternedStr}; use super::Backend; -use crate::{symbol::expect_valid_symbol, DefaultSymbol, Symbol}; +use crate::{DefaultSymbol, Symbol, symbol::expect_valid_symbol}; use alloc::{string::String, vec::Vec}; use core::{iter::Enumerate, marker::PhantomData, slice}; diff --git a/src/backend/buffer.rs b/src/backend/buffer.rs index c3b7c0b..484a3ef 100644 --- a/src/backend/buffer.rs +++ b/src/backend/buffer.rs @@ -1,7 +1,7 @@ #![cfg(feature = "backends")] use super::Backend; -use crate::{symbol::expect_valid_symbol, DefaultSymbol, Symbol}; +use crate::{DefaultSymbol, Symbol, symbol::expect_valid_symbol}; use alloc::vec::Vec; use core::{marker::PhantomData, mem, str}; diff --git a/src/backend/string.rs b/src/backend/string.rs index 307dd60..d392218 100644 --- a/src/backend/string.rs +++ b/src/backend/string.rs @@ -1,7 +1,7 @@ #![cfg(feature = "backends")] use super::Backend; -use crate::{symbol::expect_valid_symbol, DefaultSymbol, Symbol}; +use crate::{DefaultSymbol, Symbol, symbol::expect_valid_symbol}; use alloc::{string::String, vec::Vec}; use core::{iter::Enumerate, marker::PhantomData, slice}; diff --git a/src/interner.rs b/src/interner.rs index 5f354a8..44aacc2 100644 --- a/src/interner.rs +++ b/src/interner.rs @@ -1,4 +1,4 @@ -use crate::{backend::Backend, Symbol}; +use crate::{Symbol, backend::Backend}; use core::{ fmt, fmt::{Debug, Formatter}, diff --git a/src/serde_impl.rs b/src/serde_impl.rs index f36cfb4..967f605 100644 --- a/src/serde_impl.rs +++ b/src/serde_impl.rs @@ -1,4 +1,4 @@ -use crate::{backend::Backend, StringInterner, Symbol}; +use crate::{StringInterner, Symbol, backend::Backend}; use alloc::boxed::Box; use core::{default::Default, fmt, hash::BuildHasher, marker}; use serde::{ @@ -123,8 +123,8 @@ impl_serde_for_symbol!(SymbolUsize, usize); #[cfg(test)] mod tests { use crate::{ - symbol::{SymbolU16, SymbolU32, SymbolUsize}, Symbol, + symbol::{SymbolU16, SymbolU32, SymbolUsize}, }; use serde_json; diff --git a/tests/allocator.rs b/tests/allocator.rs index af4dfc6..475de82 100644 --- a/tests/allocator.rs +++ b/tests/allocator.rs @@ -36,13 +36,17 @@ impl TracingAllocator { unsafe impl GlobalAlloc for TracingAllocator { unsafe fn alloc(&self, layout: Layout) -> *mut u8 { - self.stats.push_allocations(layout); - self.inner.alloc(layout) + unsafe { + self.stats.push_allocations(layout); + self.inner.alloc(layout) + } } unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { - self.stats.push_deallocations(layout); - self.inner.dealloc(ptr, layout); + unsafe { + self.stats.push_deallocations(layout); + self.inner.dealloc(ptr, layout); + } } } diff --git a/tests/tests.rs b/tests/tests.rs index 1f4a55c..68f6f7d 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -1,7 +1,7 @@ mod allocator; use allocator::TracingAllocator; -use string_interner::{backend, DefaultHashBuilder, DefaultSymbol, Symbol}; +use string_interner::{DefaultHashBuilder, DefaultSymbol, Symbol, backend}; #[global_allocator] static ALLOCATOR: TracingAllocator = TracingAllocator::new();