(
&self,
inode: Inode,
node: GraphNode<NodeId>,
min_flag: EdgeFlags,
max_flag: EdgeFlags,
)
| 1536 | type InodeError = crate::pristine::PristineError; |
| 1537 | |
| 1538 | fn init_inode_adj( |
| 1539 | &self, |
| 1540 | inode: Inode, |
| 1541 | node: GraphNode<NodeId>, |
| 1542 | min_flag: EdgeFlags, |
| 1543 | max_flag: EdgeFlags, |
| 1544 | ) -> Result<crate::pristine::InodeAdjState, Self::InodeError> { |
| 1545 | // Use the cached INODE_GRAPH table handle directly instead of |
| 1546 | // delegating to self.txn (which would reopen the table). |
| 1547 | let mut adj = crate::pristine::InodeAdjState::new(inode, node, min_flag, max_flag); |
| 1548 | |
| 1549 | // Pre-load edges from the cached table on first init |
| 1550 | // (same logic as ReadTxn::next_inode_adj but using cached handle) |
| 1551 | let inode_id = inode.get(); |
| 1552 | let key = encode_inode_vertex( |
| 1553 | inode_id, |
| 1554 | node.change.get(), |
| 1555 | node.start.get(), |
| 1556 | node.end.get(), |
| 1557 | ); |
| 1558 | let mut edges = Vec::new(); |
| 1559 | for v in self.inode_graph_table.get(&key)?.filter_map(|r| r.ok()) { |
| 1560 | let bytes: &[u8; 24] = v.value(); |
| 1561 | let edge = deserialize_edge(bytes); |
| 1562 | let flag = edge.flag(); |
| 1563 | if flag >= min_flag && flag <= max_flag { |
| 1564 | edges.push(edge); |
| 1565 | } |
| 1566 | } |
| 1567 | adj.set_edges(edges); |
| 1568 | |
| 1569 | Ok(adj) |
| 1570 | } |
| 1571 | |
| 1572 | fn next_inode_adj( |
| 1573 | &self, |
no test coverage detected