geo_booleanop/splay/
node.rs1#[derive(Clone, Debug)]
2pub struct Node<K, V> {
3 pub key: K,
4 pub value: V,
5 pub left: Option<Box<Node<K, V>>>,
6 pub right: Option<Box<Node<K, V>>>,
7}
8
9impl<K, V> Node<K, V> {
10 pub fn new_boxed(k: K, v: V, l: Option<Box<Node<K, V>>>, r: Option<Box<Node<K, V>>>) -> Box<Node<K, V>> {
11 Box::new(Node {
12 key: k,
13 value: v,
14 left: l,
15 right: r,
16 })
17 }
18
19 #[inline(always)]
20 pub fn pop_left(&mut self) -> Option<Box<Node<K, V>>> {
21 self.left.take()
22 }
23
24 #[inline(always)]
25 pub fn pop_right(&mut self) -> Option<Box<Node<K, V>>> {
26 self.right.take()
27 }
28}