| 1456 | } |
| 1457 | |
| 1458 | fn del_inode(&mut self, inode: Inode) -> PristineResult<Option<Position<NodeId>>> { |
| 1459 | let pos = { |
| 1460 | let mut table = self.txn.open_table(INODES)?; |
| 1461 | let removed = table.remove(inode.get())?; |
| 1462 | match removed { |
| 1463 | Some(value) => { |
| 1464 | let (change_id, pos) = decode_position(value.value()); |
| 1465 | Some(Position::new( |
| 1466 | NodeId::new(change_id), |
| 1467 | ChangePosition::new(pos), |
| 1468 | )) |
| 1469 | } |
| 1470 | None => None, |
| 1471 | } |
| 1472 | }; |
| 1473 | |
| 1474 | if let Some(ref p) = pos { |
| 1475 | let pos_bytes = encode_position(p.change.get(), p.pos.get()); |
| 1476 | let mut table = self.txn.open_table(REV_INODES)?; |
| 1477 | table.remove(&pos_bytes)?; |
| 1478 | } |
| 1479 | |
| 1480 | Ok(pos) |
| 1481 | } |
| 1482 | |
| 1483 | fn get_deps(&self, change_id: NodeId) -> PristineResult<Vec<NodeId>> { |
| 1484 | let table = self.txn.open_multimap_table(DEPS)?; |