(&mut self, sort_key: Vec<u8>, primary_key: Vec<u8>)
| 147 | // ── AVL internal methods ─────────────────────────────────────────── |
| 148 | |
| 149 | fn alloc_node(&mut self, sort_key: Vec<u8>, primary_key: Vec<u8>) -> u32 { |
| 150 | let node = Node { |
| 151 | sort_key, |
| 152 | primary_key, |
| 153 | left: NULL, |
| 154 | right: NULL, |
| 155 | height: 1, |
| 156 | count: 1, |
| 157 | }; |
| 158 | if let Some(idx) = self.free_list.pop() { |
| 159 | self.nodes[idx as usize] = node; |
| 160 | idx |
| 161 | } else { |
| 162 | let idx = self.nodes.len() as u32; |
| 163 | self.nodes.push(node); |
| 164 | idx |
| 165 | } |
| 166 | } |
| 167 | |
| 168 | fn free_node(&mut self, idx: u32) { |
| 169 | self.free_list.push(idx); |
no test coverage detected