| 935 | } |
| 936 | |
| 937 | fn del_inode(&mut self, inode: Inode) -> PristineResult<Option<Position<NodeId>>> { |
| 938 | let pos = { |
| 939 | let mut table = self.txn.open_table(INODES)?; |
| 940 | let removed = table.remove(inode.get())?; |
| 941 | match removed { |
| 942 | Some(value) => { |
| 943 | let (change_id, pos) = decode_position(value.value()); |
| 944 | Some(Position::new( |
| 945 | NodeId::new(change_id), |
| 946 | ChangePosition::new(pos), |
| 947 | )) |
| 948 | } |
| 949 | None => None, |
| 950 | } |
| 951 | }; |
| 952 | |
| 953 | if let Some(ref p) = pos { |
| 954 | let pos_bytes = encode_position(p.change.get(), p.pos.get()); |
| 955 | let mut table = self.txn.open_table(REV_INODES)?; |
| 956 | table.remove(&pos_bytes)?; |
| 957 | } |
| 958 | |
| 959 | Ok(pos) |
| 960 | } |
| 961 | |
| 962 | fn get_deps(&self, change_id: NodeId) -> PristineResult<Vec<NodeId>> { |
| 963 | let table = self.txn.open_multimap_table(DEPS)?; |