Add a canonical bidirectional GRAPH edge pair (forward + PARENT reverse), mirroring both rows into INODE_GRAPH when an inode is provided.
(
&mut self,
inode: Option<Inode>,
flag: EdgeFlags,
source: GraphNode<NodeId>,
dest: GraphNode<NodeId>,
introduced_by: NodeId,
)
| 104 | /// Add a canonical bidirectional GRAPH edge pair (forward + PARENT reverse), |
| 105 | /// mirroring both rows into INODE_GRAPH when an inode is provided. |
| 106 | pub fn add_edge_with_reverse( |
| 107 | &mut self, |
| 108 | inode: Option<Inode>, |
| 109 | flag: EdgeFlags, |
| 110 | source: GraphNode<NodeId>, |
| 111 | dest: GraphNode<NodeId>, |
| 112 | introduced_by: NodeId, |
| 113 | ) -> PristineResult<()> { |
| 114 | let forward_edge = SerializedGraphEdge::new(flag, dest.start_pos(), introduced_by); |
| 115 | let reverse_flag = flag | EdgeFlags::PARENT; |
| 116 | let reverse_edge = SerializedGraphEdge::new(reverse_flag, source.end_pos(), introduced_by); |
| 117 | |
| 118 | self.put_graph(source, forward_edge)?; |
| 119 | self.put_graph(dest, reverse_edge)?; |
| 120 | |
| 121 | if let Some(inode_val) = inode { |
| 122 | self.put_inode_graph(inode_val, source, forward_edge)?; |
| 123 | self.put_inode_graph(inode_val, dest, reverse_edge)?; |
| 124 | } |
| 125 | |
| 126 | Ok(()) |
| 127 | } |
| 128 | |
| 129 | /// Add a canonical bidirectional GRAPH edge pair, but only the forward |
| 130 | /// adjacency row to INODE_GRAPH. |
no test coverage detected