fn find(self: Self, key: Key, parent_ref: *?*Node) ?*Node 180
181
182
183
184
185
186
187
188
189
190
191
192
193
194 fn find(self: Self, key: Key, parent_ref: *?*Node) ?*Node {
var node = self.root;
parent_ref.* = null;
// basic binary search while tracking the parent.
while (node) |current| {
const order = compare(key, current.key);
if (order == .eq) break;
parent_ref.* = current;
node = current.children[@intFromBool(order == .gt)];
}
return node;
}