diff --git a/Cargo.toml b/Cargo.toml index a158ac9..53c90cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,13 +8,13 @@ repository = "https://github.com/sile/splay_tree" readme = "README.md" categories = ["data-structures", "no-std"] license = "MIT" -edition = "2021" +edition = "2024" [dependencies] serde = { version = "1", optional = true, default-features = false, features = ["alloc", "derive"] } [dev-dependencies] -rand = "0.8" +rand = "0.9" serde_json = { version = "1" } [features] diff --git a/src/tree_core.rs b/src/tree_core.rs index 7c6808b..ea68ec5 100644 --- a/src/tree_core.rs +++ b/src/tree_core.rs @@ -424,7 +424,7 @@ impl Tree { unsafe { self.nodes.get_unchecked_mut(i as usize) } } unsafe fn aliasable_node_mut<'a>(&mut self, i: NodeIndex) -> &'a mut Node { - &mut *(self.node_mut(i) as *mut _) + unsafe { &mut *(self.node_mut(i) as *mut _) } } pub fn len(&self) -> usize { self.nodes.len() diff --git a/tests/lib.rs b/tests/lib.rs index 71b108a..c905f54 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -91,7 +91,7 @@ mod map { // large map let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let mut map: SplayMap<_, _> = input.into_iter().map(|n| (n, n)).collect(); assert_eq!(map.find_lower_bound_key(&500), Some(&500)); @@ -155,7 +155,7 @@ mod map { #[test] fn large_map() { let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let mut map: SplayMap<_, _> = input.into_iter().map(|n| (n, n)).collect(); for i in 0..1000 { @@ -168,7 +168,7 @@ mod map { #[test] fn map_serde() { let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let map: SplayMap<_, _> = input.into_iter().map(|n| (n, n)).collect(); let ser_map: SplayMap<_, _> = from_str(&to_string(&map).unwrap()).unwrap(); @@ -253,7 +253,7 @@ mod set { // large set let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let mut set: SplaySet<_> = input.into_iter().collect(); assert_eq!(set.find_lower_bound(&500), Some(&500)); @@ -306,7 +306,7 @@ mod set { #[test] fn large_set() { let mut input = (0..1000).collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let mut set: SplaySet<_> = input.iter().cloned().collect(); for i in input { @@ -383,7 +383,7 @@ mod set { #[test] fn set_serde() { let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let set: SplaySet<_> = input.into_iter().collect(); let ser_set: SplaySet<_> = from_str(&to_string(&set).unwrap()).unwrap(); @@ -461,7 +461,7 @@ mod heap { #[test] fn large_heap() { let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let mut heap = input.into_iter().collect::>(); while let Some(n) = heap.pop() { @@ -475,7 +475,7 @@ mod heap { use std::iter::FromIterator; let mut input = (0..1000).into_iter().collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); let heap: SplayHeap<_> = input.into_iter().collect(); let ser_heap: SplayHeap = from_str(&to_string(&heap).unwrap()).unwrap();