| 1408 | } |
| 1409 | |
| 1410 | fn del_inode(&mut self, inode: Inode) -> PristineResult<Option<Position<NodeId>>> { |
| 1411 | let pos = { |
| 1412 | let mut table = self.txn.open_table(INODES)?; |
| 1413 | let removed = table.remove(inode.get())?; |
| 1414 | match removed { |
| 1415 | Some(value) => { |
| 1416 | let (change_id, pos) = decode_position(value.value()); |
| 1417 | Some(Position::new( |
| 1418 | NodeId::new(change_id), |
| 1419 | ChangePosition::new(pos), |
| 1420 | )) |
| 1421 | } |
| 1422 | None => None, |
| 1423 | } |
| 1424 | }; |
| 1425 | |
| 1426 | if let Some(ref p) = pos { |
| 1427 | let pos_bytes = encode_position(p.change.get(), p.pos.get()); |
| 1428 | let mut table = self.txn.open_table(REV_INODES)?; |
| 1429 | table.remove(&pos_bytes)?; |
| 1430 | } |
| 1431 | |
| 1432 | Ok(pos) |
| 1433 | } |
| 1434 | |
| 1435 | fn get_deps(&self, change_id: NodeId) -> PristineResult<Vec<NodeId>> { |
| 1436 | let table = self.txn.open_multimap_table(DEPS)?; |