(
&mut self,
txn: &T,
inode: Inode,
pos: Position<NodeId>,
)
| 139 | } |
| 140 | |
| 141 | fn find_start<T>( |
| 142 | &mut self, |
| 143 | txn: &T, |
| 144 | inode: Inode, |
| 145 | pos: Position<NodeId>, |
| 146 | ) -> Result<Option<GraphNode<NodeId>>, RepositoryError> |
| 147 | where |
| 148 | T: GraphTxnT + InodeGraphOps, |
| 149 | { |
| 150 | if let Some(node) = self.by_start_pos.get(&(inode, pos)) { |
| 151 | return Ok(Some(*node)); |
| 152 | } |
| 153 | let Some(node) = txn |
| 154 | .find_block_in_inode(inode, pos) |
| 155 | .map_err(|e| RepositoryError::Database(e.to_string()))? |
| 156 | else { |
| 157 | return Ok(None); |
| 158 | }; |
| 159 | self.by_start_pos.insert((inode, pos), node); |
| 160 | Ok(Some(node)) |
| 161 | } |
| 162 | |
| 163 | fn load<T>( |
| 164 | &mut self, |
no test coverage detected