rbtree: fix imports/mustuse
This commit is contained in:
parent
c9481b05c3
commit
83fd782c46
|
|
@ -6,4 +6,4 @@ mod raw_node;
|
||||||
|
|
||||||
extern crate alloc;
|
extern crate alloc;
|
||||||
|
|
||||||
pub use raw_node::{RBTree, TreeIter, TreeNodeIter};
|
pub use raw_node::{Color, RBTree, Side, TreeIter, TreeNodeIter, UnsafeNode};
|
||||||
|
|
|
||||||
|
|
@ -709,6 +709,7 @@ impl<N: UnsafeNode> RBTree<N> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[must_use]
|
||||||
pub fn insert_node(&mut self, new_node: NonNull<N>) -> Option<NonNull<N>> {
|
pub fn insert_node(&mut self, new_node: NonNull<N>) -> Option<NonNull<N>> {
|
||||||
let node_ref = unsafe { new_node.as_ref() };
|
let node_ref = unsafe { new_node.as_ref() };
|
||||||
|
|
||||||
|
|
@ -824,6 +825,7 @@ impl<N: UnsafeNode> RBTree<N> {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[must_use]
|
||||||
pub fn remove<Q>(&mut self, key: &Q) -> Option<NonNull<N>>
|
pub fn remove<Q>(&mut self, key: &Q) -> Option<NonNull<N>>
|
||||||
where
|
where
|
||||||
N::Key: core::borrow::Borrow<Q>,
|
N::Key: core::borrow::Borrow<Q>,
|
||||||
|
|
@ -993,11 +995,17 @@ impl<N: UnsafeNode> RBTree<N> {
|
||||||
z.node()
|
z.node()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn iter(&self) -> TreeNodeIter<'_, N> {
|
pub fn iter_nodes(&self) -> TreeNodeIter<'_, N> {
|
||||||
TreeNodeIter {
|
TreeNodeIter {
|
||||||
range: TreeRange::full_range(self.root_handle()),
|
range: TreeRange::full_range(self.root_handle()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn iter(&self) -> TreeIter<'_, N> {
|
||||||
|
TreeIter {
|
||||||
|
range: TreeRange::full_range(self.root_handle()),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<N: UnsafeNode> Default for RBTree<N> {
|
impl<N: UnsafeNode> Default for RBTree<N> {
|
||||||
|
|
@ -1227,7 +1235,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn next_of() {
|
fn next_of() {
|
||||||
let mut tree = RBTree::<TestNode>::new();
|
let mut tree = RBTree::<TestNode>::new();
|
||||||
tree.insert_node(Box::into_non_null(Box::new(TestNode::new(1))));
|
_ = tree.insert_node(Box::into_non_null(Box::new(TestNode::new(1))));
|
||||||
|
|
||||||
assert_eq!(tree.root_handle().next_of(), None);
|
assert_eq!(tree.root_handle().next_of(), None);
|
||||||
assert_eq!(tree.root_handle().next_back_of(), None);
|
assert_eq!(tree.root_handle().next_back_of(), None);
|
||||||
|
|
@ -1245,11 +1253,11 @@ mod tests {
|
||||||
|
|
||||||
impl DummyTree {
|
impl DummyTree {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
let mut a = Box::into_non_null(Box::new(TestNode::new(1)));
|
let a = Box::into_non_null(Box::new(TestNode::new(1)));
|
||||||
let mut x = Box::into_non_null(Box::new(TestNode::new(2)));
|
let x = Box::into_non_null(Box::new(TestNode::new(2)));
|
||||||
let mut b = Box::into_non_null(Box::new(TestNode::new(3)));
|
let b = Box::into_non_null(Box::new(TestNode::new(3)));
|
||||||
let mut y = Box::into_non_null(Box::new(TestNode::new(4)));
|
let y = Box::into_non_null(Box::new(TestNode::new(4)));
|
||||||
let mut c = Box::into_non_null(Box::new(TestNode::new(5)));
|
let c = Box::into_non_null(Box::new(TestNode::new(5)));
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
x.as_ref().set_left(Some(a));
|
x.as_ref().set_left(Some(a));
|
||||||
|
|
@ -1345,10 +1353,10 @@ mod tests {
|
||||||
|
|
||||||
for &node in &nodes {
|
for &node in &nodes {
|
||||||
eprintln!("Inserting node with key: {}", unsafe { (*node).key });
|
eprintln!("Inserting node with key: {}", unsafe { (*node).key });
|
||||||
tree.insert_node(unsafe { NonNull::new_unchecked(node) });
|
_ = tree.insert_node(unsafe { NonNull::new_unchecked(node) });
|
||||||
|
|
||||||
eprintln!("Tree after insertion:");
|
eprintln!("Tree after insertion:");
|
||||||
for n in tree.iter() {
|
for n in tree.iter_nodes() {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"\tNode: {:?} => {:?}",
|
"\tNode: {:?} => {:?}",
|
||||||
unsafe { n.node().map(|n| n.as_ref().key) },
|
unsafe { n.node().map(|n| n.as_ref().key) },
|
||||||
|
|
@ -1373,7 +1381,7 @@ mod tests {
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
for &node in &nodes {
|
for &node in &nodes {
|
||||||
tree.insert_node(unsafe { NonNull::new_unchecked(node) });
|
_ = tree.insert_node(unsafe { NonNull::new_unchecked(node) });
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in 0..10 {
|
for i in 0..10 {
|
||||||
|
|
@ -1389,7 +1397,7 @@ mod tests {
|
||||||
));
|
));
|
||||||
|
|
||||||
eprintln!("Tree after removal:");
|
eprintln!("Tree after removal:");
|
||||||
for n in tree.iter() {
|
for n in tree.iter_nodes() {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"\tNode: {:?} => {:?}",
|
"\tNode: {:?} => {:?}",
|
||||||
unsafe { n.node().map(|n| n.as_ref().key) },
|
unsafe { n.node().map(|n| n.as_ref().key) },
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue