MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / search_node

Function search_node

nodedb-spatial/src/rtree/search.rs:20–46  ·  view source on GitHub ↗

Recursive range search.

(
    nodes: &'a [Node],
    node_idx: usize,
    query: &BoundingBox,
    results: &mut Vec<&'a RTreeEntry>,
)

Source from the content-addressed store, hash-verified

18
19/// Recursive range search.
20pub(crate) fn search_node<'a>(
21 nodes: &'a [Node],
22 node_idx: usize,
23 query: &BoundingBox,
24 results: &mut Vec<&'a RTreeEntry>,
25) {
26 let node = &nodes[node_idx];
27 if !node.bbox.intersects(query) {
28 return;
29 }
30 match &node.kind {
31 NodeKind::Leaf { entries } => {
32 for entry in entries {
33 if entry.bbox.intersects(query) {
34 results.push(entry);
35 }
36 }
37 }
38 NodeKind::Internal { children } => {
39 for child in children {
40 if child.bbox.intersects(query) {
41 search_node(nodes, child.node_idx, query, results);
42 }
43 }
44 }
45 }
46}
47
48/// Nearest-neighbor search via priority queue (min-heap).
49pub(crate) fn nearest(

Callers 1

searchMethod · 0.85

Calls 2

intersectsMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected